Если вы просто хотите, чтобы ликвидировать последствия предыдущей трансформации, вы можете, как смотреть в установки свойства shape.transform значению CGAffineTransformIdentity.
Когда вы устанавливаете свойство преобразования вида, вы заменяете существующее существующее преобразование, а не добавляете его. Поэтому, если вы назначаете преобразование, которое вызывает поворот, он забудет о любом флипе, который вы предварительно настроили.
Если вы хотите добавить дополнительную операцию поворота или масштабирования в представление, которое вы предварительно преобразовали, вам следует изучить функции, которые позволяют вам указать существующее преобразование.
I.e. вместо того, чтобы использовать
shape.transform = CGAffineTransformMakeRotation(M_PI);
, который заменяет существующее преобразование с указанным вращением, вы можете использовать
shape.transform = CGAffineTransformRotate(shape.transform, M_PI);
это относится вращение к существующему преобразованию (то, что когда-либо, что может быть), а затем присваивает его вид. Взгляните на Apple's documentation for CGAffineTransformRotate, это может немного прояснить ситуацию.
В документе говорится: «Если вы не планируете повторно использовать аффинное преобразование, вы можете использовать CGContextScaleCTM, CGContextRotateCTM, CGContextTranslateCTM или CGContextConcatCTM».
Вам также могут понравиться функции CGAffineTransformScale (которые позволяют создавать преобразование с использованием существующего преобразования в качестве отправной точки). –
Hi Christopher, Спасибо за ответ. Моя проблема, как я упоминал в оригинальной статье, я пытаюсь перевернуть изображение по вертикали (зеркальное изображение изображения внутри UIImageview). Фрагмент кода, который я опубликовал в исходном сообщении, отлично работает, но он не сохраняет новое (перевернутое) состояние или преобразование UIImageview. Потому что когда-то перевернулось, я хочу делать дальнейшие вращения на этом перевернутом изображении. Скажем, я переворачиваю, а затем поворачиваю, он переворачивает UIImageview с помощью кода выше, и когда я нажимаю «вращать», он поворачивает исходный UIImageview, а не перевернутый. Надеюсь, я тебя не смутил. – 2009-10-29 15:02:32