2014-05-07 53 views
2

我有一個UITapGestureRecognizer設置,它執行0.8sUIView動畫。我想要做的是允許用戶在0.8s期間中斷。我將處理動畫的一面(即從當前位置製作動畫),但當前的問題是,在0.8s期間的任何進一步的敲擊都不會將識別器中的@selector稱爲。任何後續的水龍頭都會阻止,直到完成第一次穿過@selectorUITapGestureRecognizer的動作在進行中時無法調用?

只是爲了確認,我需要的是允許調用相同的UITapGestureRecognizer中相同的@selector的方法,即使它還沒有return。此時,我可以覆蓋動畫,告訴它從當前位置開始,即使用戶對識別器進行了垃圾郵件,也會完成動畫。

有沒有辦法做到這一點?我考慮過線程化,但我的印象是,我不應該在後臺線程上進行UI更新,所以我很猶豫如何嘗試這種方式。

+0

你可以發表你的動畫代碼? – Seryozha

+0

這只是一個標準的'UIView animateWithDuration'調用,它設置了一個變換。 – Luke

回答

1

好吧,如果你想允許動畫過程中的用戶交互,增加UIViewAnimationOptionAllowUserInteraction選項,這裏是例子,

[UIView animateWithDuration:0.8 
         delay:0.0 
        options:UIViewAnimationOptionAllowUserInteraction 
       animations:^{ 
        // your animations 
       } completion:^(BOOL finished) { 
        // completion 
       }]; 
+0

嗯,明白了。它在被調用時阻塞了整個線程。耐人尋味。 – Luke

相關問題