2012-07-17 49 views
0

好吧說我有一個圓形的矩形按鈕和一個連接到它的動作方法-(IBAction)btnclicked:(id)sender。當按下按鈕時,它會觸發動畫。我在上面提到的動作方法中使用了這個 - imageview.animationImages = images;。這裏imageview是一個指向UIImageView對象的指針,images是一個圖像數組。現在我想要的是該按鈕應該保持禁用,而動畫正在進行。爲此,我試過這個:在動畫中間禁用UIButton

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

這當然會禁用按鈕,但是我應該如何在動畫結束後啓用它。我想過使用NSTimer,並禁用與動畫相同的時間按鈕,但這不是一個好方法(它很難將此計時器與動畫同步)。此外,動畫結束後,動畫也會停止。所以請告訴我是否有任何好方法可以做我想要做的事情?謝謝

+0

你可以有動畫禁用_all_用戶交互在動畫期間。然後它會在動畫之後自動啓用它。這對你有用嗎? – 2012-07-17 09:34:05

+0

是的,這將工作!我怎麼做? – 2012-07-17 09:48:02

+0

使用基於塊的動畫方法時,默認情況下禁用所有用戶交互。請參閱[link](http://stackoverflow.com/questions/5748337/preventing-user-input-during-uiview-animations)。 – werner 2012-07-17 10:00:23

回答

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

0

解決此類情況的最佳方法是使用完成塊實施UIAnimation。 查看SO上的post

希望這會有所幫助。

0

可以使用

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

這個屬性成爲No動畫時完成。所以這意味着動畫後btn變爲啓用。 只有你需要disable它在動畫開始。

我希望這能幫助