,----------. ,----------.
| | | ⓘ |
| ,----. | | |
| |LOGO| | ===> | |
| `----' | | |
| VC1 | | VC2 |
`----------' `----------'
我想实现一个像上面的草图中描述的动画:当UI从VC1(可能是一个欢迎场景,在中心有大的标志)转移到VC2(主场景,在右上角有一个圆圈的字母 I ,这是一个ABOUT按钮),我想要这个标志逐渐转化为小圆圈 I 。
因为徽标视图属于VC1,而圈出的i属于VC2,我不知道如何正确地动画它们。可能是将LOGO转换成圈i的比例和位置,然后切换它们的可见性是一个好方法(我不确定)
还有其他这种类型的动画,有时简单的transform --> toggle visibility
技巧无法处理:想象有一个textview(可能是一个标题)需要在动画的fromVC
和toVC
中同时呈现,其他视图(例如:背景)需要转换(例如;alpha混合,模糊等)。我做了一个hack,使textview在开始时属于fromVC
,并在动画阶段将其赋予toVC
,这在某种程度上起作用,但看起来有点脏。有更好的方法(或最好的方法)来实现这一点吗?
,-----------. ,----------.
| | | ,-----. |
| ,-----. | | |Title| | The textview holding title may
| |Title| | ===> | `-----' | translate during the animation
| `-----' | | |
| VC1 | | VC2 |
`-----------' `----------'
可能正在将LOGO转换为圈出的尺寸和位置,然后切换它们的可见性是一个好方法(我不确定)
是的。我就是这么做的。在单个视图控制器中管理动画,并在动画之前或之后在控制器之间即时切换。