Pro*_*ber 7 iphone core-animation uikit ipad ios
我一直认为Core Animation在后台执行动画.当我运行此代码时,我的UI交互将被阻止,直到动画结束:
[UIView animateWithDuration:4.5
delay:0
options:options
animations:^{
oldView.alpha = 0;
newView.alpha = 1;
}
completion:^(BOOL finished) {
if (finished) {
[oldView removeFromSuperview];
}
}];
Run Code Online (Sandbox Code Playgroud)
就像你可以看到持续时间很长,因此可以清楚地看到UI交互在动画时被阻止.
当动画开始时,UI交互开始被阻止,并且在动画结束时结束被阻止.
有没有办法同时启动UIView动画,以便不阻止UI交互?
编辑澄清:我知道UI被阻止,因为我不能与屏幕上的任何控件交互为什么这个动画运行.那些其他控件与动画内容无关,并且不在视图层次结构中的同一分支上.此动画运行时,将阻止整个UI.当我将其设置为10秒时,UI会在动画运行时被阻止10秒.在iPhone 4上使用iOS 4.2进行测试.
jms*_*617 19
查看UIView的文档,我在该方法的讨论部分中找到了这个:
在动画期间,对于要动画的视图,临时禁用用户交互.(在iOS 5之前,对整个应用程序禁用用户交互.)如果希望用户能够与视图交互,请在options参数中包含UIViewAnimationOptionAllowUserInteraction常量.
因此,如果您希望继续允许用户交互,则必须在options参数中设置此常量.