+ [UIView transitionFromView:toView:...]具有多个视图

时间:2014-10-30 09:37:18

标签: ios objective-c cocoa-touch animation uiview

所以情况如下:

我已经说过20个观点,他们都是同一个观点的子视图。现在我想在动画内容中删除并添加新视图。 我之前通过使用常规的UIView动画并逐渐淡出它们来做到这一点。问题是,当要插入的新子视图与正在淡出的子视图重叠时,动画并非完美无瑕。所以我尝试使用+[UIView transitionFromView:toView:...]动画块来使动画交叉溶解。这很好用,动画效果很好。 这基本上解决了我的问题。唯一的问题是,我可能想要用一个更大的子视图替换2个子视图。这并没有真正解决,因为我不能只将nil传递给转换方法。

所以我的问题基本上是我可以同时交叉分解多个子视图,无论动画有多少视图?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您是否尝试过将视图移除到透明的大视图中?所以你只需要使用容器内部的2个小容器和正在进入的大容器调用transitionFromViewToView?

答案 1 :(得分:0)

您可以使用+ [UIView transitionWithView:duration:options:animations:completion:],传递公共超级视图(通常是视图控制器的self.view),以便立即执行所有动画。

摘自文档:

  

此方法将转换应用于指定视图,以便您可以   对状态进行更改。您在动画中指定的块   参数包含您要进行的任何状态更改。 你可以   使用此块添加,删除,显示或隐藏指定的子视图   查看。如果要包含其他可设置动画的更改,则必须执行此操作   在中包含UIViewAnimationOptionAllowAnimatedContent键   选项参数。