1

我想知道如何在不冻结我的应用程序的其余部分的情况下在我的视图上拥有连续和重复的动画 - 因为我目前的方法导致 100% 动画,0% 的用户交互可能 - 这有点..不好。

动画一般很简单:我想让 uilabel 像警报器一样,将 alpha 属性从 1 更改为 0 来回等等。

因此,基本的动画块是:

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

我尝试在后台、后台线程中调用它,甚至在异步 GCD 块中,每次我失去对应用程序的控制时 - 但动画效果很好。(好的,苹果文档说它必须发生在主线程上,但我试过了..)

现在,问题又来了:如何两者兼得?甚至有可能以这种方式吗?

提前致谢!

PS:对不起 ,如果这是一个转发,在这里没有找到合适的解决方案/问题!

PPS:是的,我知道警报器不会改变它们的 alpha 属性:P

4

2 回答 2

1

您是否尝试将 UIViewAnimationOptionAllowUserInteraction 添加到选项标志?

于 2011-04-29T21:24:23.547 回答
1

嗯.. 用 uikit 做动画肯定很容易.. 但我不会说它非常有效。您只需为 alpha 设置动画,但背景中会发生更多事情。:)

动画已经在不同的线程中运行..所以在另一个线程上启动它不会帮助你。

作为一种解决方案,我会在您的应用程序中注册一个 CADisplayLink 并在其更新功能中更改视图的 alpha ......如果您一直运行它,这将更加有效。

于 2011-04-29T21:26:54.643 回答