我一直认为核心动画是在后台进行动画的。当我运行此代码时,我的UI交互将被阻塞,直到动画完成:
[UIView animateWithDuration:4.5
delay:0
options:options
animations:^{
oldView.alpha = 0;
newView.alpha = 1;
}
completion:^(BOOL finished) {
if (finished) {
[oldView removeFromSuperview];
}
}];正如您可以看到,持续时间是长的,所以它可以清楚地看到,用户界面交互被阻止时,动画。
当动画开始时,UI交互开始被阻塞,动画结束时,UI交互被阻塞。
是否有一种方法可以同时启动UIView动画,这样UI交互就不会被阻止?
编辑以澄清:我知道UI被阻塞了,因为我不能与屏幕上的任何控件交互为什么这个动画正在运行。这些其他控件与正在动画的控件无关,也不在视图层次结构中的同一分支上。当此动画运行时,整个UI将被阻塞。当我将它设置为10秒时,当动画运行时,UI会被阻塞10秒。用iOS 4.2在iPhone 4上进行测试。
发布于 2012-04-01 19:23:00
查看UIView的文档,我在该方法的讨论部分中找到了以下内容:
在动画期间,为动画视图临时禁用用户交互。(在iOS 5之前,整个应用程序都禁用用户交互。)如果希望用户能够与视图交互,请在options参数中包括UIViewAnimationOptionAllowUserInteraction常量。
因此,如果要继续允许用户交互,则必须在options参数中设置此常量。
发布于 2012-04-01 19:22:15
文档是您的朋友:)
UIView类引用
动画下:动画:
“在动画期间,对于被动画的视图,用户交互被暂时禁用。(在iOS 5之前,整个应用程序都禁用用户交互。)
当然,对于动画视图下的所有视图。
https://stackoverflow.com/questions/9967384
复制相似问题