CATransform3DRotate和UIImageView

时间:2010-07-20 23:10:36

标签: iphone core-animation

我正在使用此代码

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)];

而且我不知道写什么而不是“HERE”。请问你能帮帮我吗? 非常感谢!

1 个答案:

答案 0 :(得分:4)

CATransform3DRotate()将第一个参数作为应用旋转的变换。如果您想要旋转图层的变换,可以使用

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

那就是说,如果您遇到的问题是图层在动画结束时回到起始位置,您需要做的就是将动画的removedOnCompletion属性设置为NO及其{ {1}} fillMode的属性。