当我调用方法“labelDropped”时,我有一个简单的动画来制作我要停止的文本闪光。 这是动画代码:
- (void)blinkAnimation:(NSString *)animationID finished:(BOOL)finished target:(UIView *)target
{
float speedFloat = .8;
[UIView beginAnimations:animationID context:target];
[UIView setAnimationDuration:speedFloat];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(blinkAnimation:finished:target:)];
if([target alpha] == 1.0f)
[target setAlpha:0.0f];
else
[target setAlpha:1.0f];
[UIView commitAnimations];
}
在我的视图的init方法中调用此方法如下:
[self blinkAnimation:@"blinkAnimation" finished:YES target:infoLabel];
最后,我用来停止动画的代码,这是无效的。它是从名为“labelDropped”的单独方法调用的:
[self.layer removeAllAnimations];
我甚至尝试过:
[infoLabel.layer removeAllAnimations];
......但它也没有用。 谢谢你的帮助。
答案 0 :(得分:2)
我的猜测是即使停止动画,也会调用完成处理程序。所以你最终再次开始动画。
检查已完成参数的值。如果完成==否,请不要再次启动动画。只需将其放在blinkAnimation:finished:target:
的开头。
if (!finished) return;