有没有办法在iOS中检测正在运行的动画?
我试图找到一种方法来检测视图是否正在动画。
例如:我在视图的图层上应用了一个阴影,指定了shadowPath以获得性能。 当视图被调整大小时,阴影应该随着动画。 我可以观察视图的框架,并相应地更改图层的shadowPath。 但是当视图正在调整大小时,由于变化没有动画,因此影子会跳跃前进。
我知道如何使用CABasicAnimation为shadowPath制作动画,但我需要知道正在进行的动画的属性,以便我可以将它们应用于我的动画(主要是:duration,easing)。
这是一个框架类型的组件,所以我不能假设我事先知道持续时间和缓动属性。
观察帧时有没有办法检测开始/运行的动画?
通过调用,您可以检索附加到特定视图图层的所有动画,并知道它是关键
[yourView.layer animationForKey:@"key"]
为了获得所有的钥匙,还有一些动画可供调用
NSArray* keys = [yourView.layer animationKeys];
我认为最好的做法应该是......
UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.7];
[UIView setAnimationBeginsFromCurrentState:YES];
.....your code
// Set animation did stop selector before committing the animations
[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
[UIView commitAnimations];
链接地址: http://www.djcxy.com/p/74181.html