我有一些扑克牌,当你点击它们时会翻转。我想在翻转动画完成后发生一些事情,所以我在我的UIView
动画周期中有这个:
[UIView setAnimationDidStopSelector:@selector(flipAnimationDone:finished:context:)];
......这称之为:
-(void)flipAnimationDone:(NSString *)animationID finished:(BOOL)finished context:(void *)context {
if (finished == YES) {
// other stuff here
}
}
现在,我需要if (finished == YES)
位,因为否则other stuff
会触发,即使用户在动画中间再次点击卡,这很糟糕 - - 它只需要在翻转动画完全完成时才会发生:)
问题是,这不起作用。如果我有if
,other stuff
无论如何都不会发射。如果我离开if
,其他东西会激发,但可能是在错误的时间。
我使finished
位错误导致它无法正常工作?
谢谢!
答案 0 :(得分:4)
请注意,文档说方法签名是
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;
具体地,
finished
包含布尔值的NSNumber对象。如果动画在停止之前运行完成,则值为YES;如果动画没有,则返回NO。
因此,您应该将其设为(NSNumber *)finished
和if ([finished boolValue]) { ... }
。