2011-04-29 68 views
1

我不知道怎麼可以對我的意見連續的和重複的動畫的w/o冷凍我的應用程序的其餘部分 - 因爲我的當前方法會導致成100%的動畫,0%的用戶交互可能 - 這是有點不好。UIView的動畫接管CPU時間

動畫一般很簡單:我想打一個的UILabel行爲像一個警報器,從1到0和背部等改變阿爾法屬性。因此

的基本的動畫塊是:

[UIView animateWithDuration:0.4f 
          delay:0.0f 
         options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionBeginFromCurrentState 
        animations:^(void){warningMessage.alpha = 0;} 
        completion:NULL];  

我試圖調用它的背景下,在backgroundthreads,即使在一個異步GCD塊,每次應用程序i的鬆散控制 - 但動畫工作正常。 (好吧,蘋果文檔說它必須發生在主線程,但我試過..)

現在又一次,問題:如何擁有它?這種方式甚至有可能嗎?

在此先感謝!

P.S:Sry基因如果這是一個相當轉貼,沒有在這裏找到一個妥善的解決辦法/問題!

P.P.S:是的,我知道,警報器不改變其阿爾法屬性格式:P

回答

1

你嘗試加入UIViewAnimationOptionAllowUserInteraction的選項標誌?

+0

不錯的提示,非常感謝! – thedanielhanke 2011-04-29 21:29:15

1

嗯..做與UIKit的動畫是肯定容易..但我不會把它非常有效。你只需要爲alpha創建動畫,但是背景中還有更多的事情發生。 :)

動畫已經在不同的線程運行..所以對的起它的其他線程不會幫你。

作爲一個解決方案,我會在你申請註冊一個CADisplayLink和更改視圖的阿爾法在它的升級功能......如果你運行它所有的時間,這將是更有效的。

+0

感謝您的提示!我會閱讀,嘗試,使用並希望接受你的回答:) – thedanielhanke 2011-04-29 21:28:33

+0

傑森的解決方案使用起來相當簡單 - 而且我的時間不多了!無論如何謝謝你,非常感謝! – thedanielhanke 2011-04-29 21:31:27