正确使用finished:在setAnimationDidStopSelector中:?

时间:2011-08-06 05:45:35

标签: ios animation

我有一些扑克牌,当你点击它们时会翻转。我想在翻转动画完成后发生一些事情,所以我在我的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会触发,即使用户在动画中间再次点击卡,这很糟糕 - - 它只需要在翻转动画完全完成时才会发生:)

问题是,这不起作用。如果我有ifother stuff无论如何都不会发射。如果我离开if,其他东西会激发,但可能是在错误的时间。

我使finished位错误导致它无法正常工作?

谢谢!

1 个答案:

答案 0 :(得分:4)

请注意,文档说方法签名是

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;

具体地,

  

finished
  包含布尔值的NSNumber对象。如果动画在停止之前运行完成,则值为YES;如果动画没有,则返回NO。

因此,您应该将其设为(NSNumber *)finishedif ([finished boolValue]) { ... }

相关问题