Rotation о происхождении данного контекста, который является то же самое, что прямоугольники относительно. Если представить лист миллиметровой бумаги в фоновом режиме, вы можете увидеть, что происходит на более ясно:
Линия «снизу» (у = 0) из вашего окна/вид/слой/контекст. Конечно, вы можете рисовать ниже дна, если хотите, и если ваш контекст трансформируется правильно, вы можете даже увидеть его.
В любом случае, я предполагаю, что то, что вы хотите сделать, - это поворот прямоугольника на место по отношению к нерожденному миру, а не вращение мира и все в нем.
Единственный способ повернуть что-либо, чтобы повернуть мир, так что, как вам нужно сделать, это:
- Сохранить в графическое состояние.
Перевести источник в точку, где вы хотите нарисовать прямоугольник. (Вы, вероятно, хотите, чтобы перевести его центральной точку, а не происхождение прямоугольника.)
Поворот контекста.
Нарисуйте прямоугольник с центром в начале координат. Другими словами, исходная точка вашего прямоугольника должна быть отрицательной на половину ширины и отрицательной половины ее высоты (т. Е. (CGPoint){ width/-2.0, height/-2.0 }
) - не использовать исходное значение, которое оно имело до этого, потому что вы уже использовали это на этапе перевода.
Восстановление gstate так что будущее рисунок не поворачивается.
Возможно, вы захотите попробовать ввести текст вопроса на своем родном языке, а затем с помощью Google Translate перевести его на английский, потому что очень сложно понять, что вы пытаетесь задать здесь. –
Theres также отличный ответ здесь - https://teamtreehouse.com/community/saving-a-rotated-image-with-cgcontextrotatectm – MendyK
Возможный дубликат [повернуть изображение с помощью CGContextDrawImage] (http://stackoverflow.com/questions/ 16766111/rotate-image-use-cgcontextdrawimage) –