2011-04-29 44 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