CGAffineTransformRotate вращать число раз, а не на угол - PullRequest
2 голосов
/ 18 октября 2011

Это, кажется, поворачивается на угол не на величину.Мне нужно использовать это в анимации UIView, чтобы несколько раз повернуть изображение.Любая альтернатива?

CGAffineTransformRotate(transform, 1.0);

Ответы [ 3 ]

7 голосов
/ 18 октября 2011

Преобразование вращения вращается на заданный угол, но я думаю, вы пытаетесь добиться поворота на 360 градусов (или более). Для этого вам нужно будет использовать CAAnimation для достижения этого ... Пример:

CABasicAnimation* spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
spinAnimation.duration = 5.0;
spinAnimation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionLinear];
spinAnimation.toValue = [NSNumber numberWithFloat: 2.0 * M_PI * 20.0];
[myView.layer addAnimation:spinAnimation forKey:@"spinAnimation"];

Приведенный выше код будет вращать myView 20 раз за 5 секунд

0 голосов
/ 18 октября 2011

Я думаю, что ключом здесь является то, что параметр CGAffineTransformRotate ожидается в радианах, а не «число оборотов».К счастью, достаточно просто перевести из «числа оборотов» в радианы, умножив на (2,0 * M_PI).

0 голосов
/ 18 октября 2011

Вам нужно сохранить текущее преобразование и повернуть ОПЯТЬ ... так что вам нужно ...

[myView setTransform:CGAffineTransformRotate(myView.transform, 1.0)];

Это применит вращение к любому существующему преобразованию, первоначально это будет CGAffineTransformIdentity, который невращение, масштабирование или перевод.

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