0

好吧,说我有一个圆形矩形按钮和一个与之连接的操作方法-(IBAction)btnclicked:(id)sender。当按钮被按下时,它会触发一个动画。我在上面提到的动作方法中使用了这个—— imageview.animationImages = images;。这imageview是一个指向 UIImageView 对象的指针,并且images是一个图像数组。现在我想要的是在动画进行时按钮应该保持禁用状态。为此,我尝试了这个:

if (imageview) {
    btn.enabled = NO;
}

这当然会禁用按钮,但我应该如何在动画结束后重新启用它。我想过在NSTimer动画的同时使用和禁用按钮,但这不是一个好方法(很难将此计时器与动画同步)。此外,它还会在动画结束后禁用动画。所以请告诉我是否有什么好方法可以做我正在尝试的事情?谢谢

4

3 回答 3

0

解决这种情况的最好方法是UIAnimation使用完成块来实现。看看这个关于 SO的帖子。

希望这可以帮助。

于 2012-07-17T09:35:06.137 回答
0

您可以使用

if ( !imageview.isAnimating) {
  btn.enabled = Yes;
}

此属性No在动画完成时变为。所以这意味着在动画之后你btn变得启用。只有你需要disable在动画开始时使用它。

我希望这会有所帮助

于 2012-07-17T10:07:09.250 回答
0

我认为动画完成块是您正在寻找的,

[UIView animateWithDuration:0.5
                          delay:0.1
                        options: UIViewAnimationOptionCurveEaseOut
                     animations:^
     {
         // Your animation
     }
                     completion:^(BOOL finished)
     {
         //Here do whatever you like after animation ends
     }];

参考:- https://stackoverflow.com/a/14900987/3411787

于 2015-04-20T06:54:59.923 回答