在 iOS 中实现 cross-controller 动画的最佳做法是什么?
What's the best practice to implement a cross-controller animation in iOS?
,----------. ,----------.
| | | ⓘ |
| ,----. | | |
| |LOGO| | ===> | |
| `----' | | |
| VC1 | | VC2 |
`----------' `----------'
我想实现一个像上面草稿中描述的动画:当UI从VC1(可能是欢迎场景,中间有大logo)转到VC2(主场景,有圆圈)字母i在右上角是一个ABOUT按钮),我希望那个标志逐渐变成那个小圆圈 我。
因为logo视图是VC1的,而圈起来的i是VC2的,不知道怎么动画才好.可能是把 LOGO 改成圆圈 i 的比例和位置,然后切换他们的可见性是个好方法(我不确定)
还有其他此类动画,有时简单的 transform --> toggle visibility
技巧无法处理:假设有一个文本视图(可能是标题)需要在 fromVC
和toVC
的动画,其他视图(例如背景)需要变换(例如 alpha-blending、模糊等)。我做了一个 hack,使 textview 在开始时属于 fromVC
,并在动画阶段将其交给 toVC
,这在某种程度上可行,但看起来有点脏。有没有更好的方法(或最佳方法)来实现这一目标?
,-----------. ,----------.
| | | ,-----. |
| ,-----. | | |Title| | The textview holding title may
| |Title| | ===> | `-----' | translate during the animation
| `-----' | | |
| VC1 | | VC2 |
`-----------' `----------'
May be transforming LOGO to circled i 's scale and position and then
toggle their visibility is a good way( I'm not sure)
是的。那就是我会做的方式。在单个视图控制器中管理动画,并在动画之前或之后立即在控制器之间切换。
,----------. ,----------.
| | | ⓘ |
| ,----. | | |
| |LOGO| | ===> | |
| `----' | | |
| VC1 | | VC2 |
`----------' `----------'
我想实现一个像上面草稿中描述的动画:当UI从VC1(可能是欢迎场景,中间有大logo)转到VC2(主场景,有圆圈)字母i在右上角是一个ABOUT按钮),我希望那个标志逐渐变成那个小圆圈 我。
因为logo视图是VC1的,而圈起来的i是VC2的,不知道怎么动画才好.可能是把 LOGO 改成圆圈 i 的比例和位置,然后切换他们的可见性是个好方法(我不确定)
还有其他此类动画,有时简单的 transform --> toggle visibility
技巧无法处理:假设有一个文本视图(可能是标题)需要在 fromVC
和toVC
的动画,其他视图(例如背景)需要变换(例如 alpha-blending、模糊等)。我做了一个 hack,使 textview 在开始时属于 fromVC
,并在动画阶段将其交给 toVC
,这在某种程度上可行,但看起来有点脏。有没有更好的方法(或最佳方法)来实现这一目标?
,-----------. ,----------.
| | | ,-----. |
| ,-----. | | |Title| | The textview holding title may
| |Title| | ===> | `-----' | translate during the animation
| `-----' | | |
| VC1 | | VC2 |
`-----------' `----------'
May be transforming LOGO to circled i 's scale and position and then toggle their visibility is a good way( I'm not sure)
是的。那就是我会做的方式。在单个视图控制器中管理动画,并在动画之前或之后立即在控制器之间切换。