CATransform3DRotate и UIImageView - PullRequest
       3

CATransform3DRotate и UIImageView

8 голосов
/ 21 июля 2010

Я анимирую UIImage представление с этим кодом

CABasicAnimation *animation;
animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
animation.duration = 1;
animation.toValue = [NSNumber numberWithFloat:M_PI];
animation.fromValue = [NSNumber numberWithInt:0];
[square.layer addAnimation:animation forKey:@"rotation"];

Все работает нормально, но мой массив занимает исходную позицию в конце анимации. Я посмотрел в свойствах слоя и обнаружил:

[square.layer setTransform:CATransform3DRotate(HERE, -M_PI, 0, 0, 0)];

И я не знаю, что написать вместо "ЗДЕСЬ". Не могли бы вы мне помочь, пожалуйста? Большое спасибо!

1 Ответ

5 голосов
/ 21 июля 2010

CATransform3DRotate() принимает в качестве первого параметра преобразование, к которому применяется вращение.Если бы вы хотели повернуть преобразование вашего слоя, вы бы использовали

[square.layer setTransform:CATransform3DRotate(square.layer.transform, -M_PI, 0, 0, 0)];

Тем не менее, если проблема заключается в том, что слой возвращается к начальной позиции в конце анимациивсе, что вам нужно сделать, это установить для свойства removedOnCompletion анимации значение NO, а для свойства fillMode значение kCAFillModeForwards.

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