Вы задали вопрос о «Какао», но на самом деле у Какао было очень заметное различие между перевернутыми и неустановленными видами в течение длительного времени. В Cocoa вам просто нужно будет override a method. (И «перевернутый» в какао означает способ, которым делает Cocoa Touch. По умолчанию «unflipped» в какао имеет нижнее левое начало.)
Но вы не программируете Какао; вы программируете Cocoa Touch.
Итак, у вас есть контекст, который перевернут, по-видимому, потому что вы получили его из UIKit (CGContexts, которые вы создаете, не пропуская UIKit, не заблокированы), и вам нужно его разблокировать. (. Или у вас есть unflipped контекст и хотите, чтобы перевернуть его)
В любом случае, решение одно и то же:
- Перевести вверх/вниз (положительный у) по всей высоте контекста/зрения ,
- Увеличьте ось y на -1.
Перевод перемещает начало координат; перевод на всю высоту перемещает начало координат в противоположный угол.
Масштабирование изменяет оси; масштабирование оси y отрицательным 1 переворачивает его в противоположном направлении, так что теперь вверх и наоборот.
Вот как вы переворачиваете (или переворачиваете) контекст из верхнего левого источника в нижний левый или наоборот.
Вещи, которые не будут работать или иным образом не должны быть судимы:
- Установка
geometryFlipped
на слое. Это влияет на подслоев, но не на пользовательский рисунок. (Конечно, если весь ваш «рисунок» представляет собой слои формы и текстовые слои и простые слои, вы можете просто установить это свойство и не беспокоиться о преобразованиях.)
- Переопределение
contentsAreFlipped
в подклассе CALayer. В документации говорится, что этого не делать.
- Установка вида или его слоя
transform
. В документации указано, что координатное пространство, к которому применяется transform
, имеет начало координат в центре (или anchorPoint
), а не в углу. Это заманчиво, но я ожидаю, что веселье начнется.
Просьба указать еще один контекст: вы рисуете свой собственный контент с помощью 'CG ...' подпрограмм? Как ротация должна играть в это, или же должна быть рассмотрена вообще? [Этот вопрос может быть уместным] (https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGAffineTransform/Reference/reference.html), в зависимости от того, что вы делаете. – dasblinkenlight
Я хочу, чтобы это было как в Cocos2d, точка y 0 была внизу, а не в верхней части экрана. И почему вы снизили ставку? ничего не делает – Arbitur
Что заставляет вас думать, что я отклонил ваш вопрос? Я не думаю, что это ясно, но я также не думаю, что это достаточно плохо, чтобы быть подавленным. – dasblinkenlight