2012-10-12 69 views
3

我想用動畫移動UIButton,當它移動(如果用戶觸摸它),我想識別該事件,但在動畫過程中UIButton不會發送任何事件。如何在UIButton動畫時識別觸摸事件

請解決我的問題。

+0

[UIButton無法在使用UIView animateWithDuration動畫時觸及](http://stackoverflow.com/questions/8346100/uibutton-cant-be-touched-while-animated-with-uiview-animatewithduration) – leekaiinthesky

回答

0

在動畫過程中,無論此屬性中的值如何,都會暫時禁用動畫中涉及的所有視圖的用戶交互。您可以通過在配置動畫時指定UIViewAnimationOptionAllowUserInteraction選項來禁用此行爲。

此外,您還可以在上海華實現

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

捕捉事件,看看是否該事件被指向按鈕。

6

您是否嘗試了AllowUserInteraction選項?

[UIView animateWithDuration:5.0 
         delay:0.0   
        options:UIViewAnimationOptionAllowUserInteraction 
        animations:^{ // move the button } 
       completion:^(BOOL finished){}]; 
0

由於UIButton繼承UIControl它繼承UIView,我相信你正在使用的基於塊的方法來動畫的按鈕animateWithDuration:delay:options:animations:completion:

您需要添加選項UIViewAnimationOptionAllowUserInteraction當你動畫的UIButton的允許識別一些用戶交互。正如你試驗的,用戶交互在動畫期間默認是禁用的,否則。