Как мне постепенно вращать UIImageView? - PullRequest
2 голосов
/ 24 октября 2009

Мне нужно несколько раз повернуть изображение на 90 градусов. Я использую следующий код,

CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;

здесь форма - мой UIImageview.

Проблема в том, что каждый раз, когда я нажимаю кнопку поворота, он поворачивает его из исходного положения, а это не то, что я хочу. Я бы его повернул с новой позиции.

Я новичок в программировании для iphone, извиняюсь, если мне не хватает чего-то очень простого, и заранее благодарю за помощь.

Кедар

1 Ответ

7 голосов
/ 25 октября 2009

Если вы пытаетесь оживить это вращение, вы можете прочитать мой ответ на этот вопрос , где кто-то пытался оживить пошаговое вращение представления. Оказывается, что добавочная анимация преобразования с использованием CABasicAnimations немного сложнее, чем вы ожидаете. Сначала вам нужно прочитать текущее преобразование слоя вашего UIView из его presentationLayer, а затем передать его в анимацию как fromValue.

Однако в вашем случае кажется, что вы используете анимационный блок UIView для анимации свойства transform вашего представления. Код, который вы написали, будет только устанавливать преобразование вашего представления на то же самое вращение на 90 градусов, оно не будет постепенно поворачивать представление на 90 градусов. Я полагаю, что для инкрементного вращения вам понадобится что-то вроде следующего:

CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;

, который будет захватывать текущее преобразование вида, поворачивать его на 90 градусов и затем применять полученное преобразование к представлению. Опять же, это может столкнуться с теми же проблемами, что и с CABasicAnimations, и в этом случае вам следует обратиться к приведенному выше ответу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...