0

我有一个主自定义容器视图控制器,其目的是在两个不同的视图控制器之间交换,每个视图控制器都管理一个带有文本字段的表单。我们将它们称为 FormVC1 和 FormVC2。这两个控制器的视图都由 XIB 管理。

我可以使用以下方法在 FormVC1 和 FormVC2 之间成功交换:

transitionFromViewController:toViewController:duration:options:animations:completion:同时传递参数UIViewAnimationOptionTransitionCrossDissolveoptions

现在我想稍微甜化一下过渡,当 FormVC1 被关闭时,我希望单个文本字段向左飞(一次一个),当 FormVC2 呈现时,我希望单个文本字段从右边飞进来,一次一个。

我对如何设置这一切以及在哪里放置特定的文本字段动画代码感到有些困惑。我把它放在Master的动画块中吗?我是否将它放在每个 FormVC 的外观回调中?

4

2 回答 2

0

您有几种选择,因此请选择最适合您的一种:

1)使容器视图控制器包含一个滚动视图,禁用滚动,禁用滚动条。将两个窗体 vc 设置为容器的子 vc,并将视图添加到彼此相邻的滚动视图中,因此只有一个可见。在适当的时候,通过将动画设置为 YES 的滚动视图的内容偏移设置来显示下一个表单。

2)更好(更容易扩展以添加任意数量的表单),使用 UICollectionView 而不是基本的滚动视图,将其设置为使用水平线性布局,制作一个自定义单元格来保存您的表单 vc 类(禁用滚动和滚动条) ,然后显示下一个表单,scrollToItemAtIndexPath:: 应该可以解决问题。

3)最基本的,也许已经足够好了:让你的容器成为一个导航控制器,然后用默认的转换推送表单 vc 。

所有这些解决方案都假设您的表单 vc 只是您想要动画的控件,并且主视图具有透明背景。

于 2013-09-18T17:30:45.173 回答
0
于 2013-09-18T18:21:09.127 回答