使用Objective-C块的UIView动画

Jas*_*ien 7 iphone animation objective-c uiview objective-c-blocks

我一直在玩两种不同的UIView动画方式:开始/提交和阻止.

我注意到beginAnimations:context:/处理commitAnimations方式非常异步,在动画运行时保持UI自由.

但是,我也注意到这种animateWithDuration:animations:completion方式似乎阻止了UI,使其在动画运行时没有响应.

我认为使用块的一个要点是轻松实现异步执行.为什么UIView动画的块变体会阻止UI,而开始/提交变体却没有?

编辑:

我的问题最初假设块动画是同步操作并阻止了UI.从Jeff Kelly的回答中可以看出,情况并非如此.我原来的假设不正确,块动画不同步.有关详细信息,请参阅Jeff的答案.

Jef*_*ley 16

你使用正确的UIView类方法吗?如果使用+animateWithDuration:delay:options:animations:completion:,则可以指定选项的位掩码.其中一个可能的选择是UIViewAnimationOptionAllowUserInteraction,听起来就像你想要的那样.