如何停止在iPhone上自定义绘制CALayer的旋转?
此
CATransform3D pausetransform = ((CALayer *)[layer presentationLayer]).transform;
[layer removeAllAnimations];
layer.transform = pausetransform;
停止动画,然后立即将图层稍微旋转一下。可能是因为在设置了pausetransform值后,动画会持续一段时间。
在动画的- (void) animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)finishednormally
委托方法中设置layer.transform值会在动画旋转到正确位置之前短暂显示动画起始位置的图层。
答案 0 :(得分:1)
事实证明,我在调用[layer removeAllAnimations]
花了这么长时间来设置的UIActionSheet显示它推迟了动画的实际停止。通过将UIActionSheet的设置移动到- (void) animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)finishednormally
委托方法,旋转现在可以顺利停止。
答案 1 :(得分:0)
另一种方法是打电话
[view.layer removeAnimationForKey:@"name of your animation"];
但是,在两次删除中,根据您设置动画的方式,动画会在动画的下一次迭代时停止。如果,比方说,你以10度的增量旋转,动画将在下一个10度增量之前停止。