UIView动画延迟

时间:2011-06-13 00:54:02

标签: iphone ipad uiview

我注意到使用UIView类方法的UIView动画似乎或多或少地使程序“暂停”直到它们完成。

有没有办法让动画开始,例如,持续3秒,当它是动画时,程序的其他方面仍在运行,接受触摸事件等?

2 个答案:

答案 0 :(得分:4)

是的,UIKit默认阻止动画期间的交互。要覆盖,请设置UIViewAnimationOptionAllowUserInteraction

[UIView animateWithDuration:0.3 delay:0.0
                    options:UIViewAnimationOptionAllowUserInteraction
                 animations:^
 {
     // ...
 } completion:NULL];

答案 1 :(得分:1)

UIKit不是线程安全的,所以所有这样的动画都必须在主线程上发生 - 而不是在后台线程上。引用Apple文档:

  

<强>线程

     

考虑因素操作   到您的应用程序的用户界面   必须发生在主线程上。从而,   你应该总是调用方法   从运行的代码中获取UIView类   您的应用程序的主线程。   这可能不是严格的唯一一次   必要的是在创建视图时   对象本身;但所有其他   操作应该发生在主要的   线程。