用户界面 - 在 iOS 中实现跨控制器动画的最佳做法是什么?


,----------.      ,----------.
|          |      |       ⓘ |
|  ,----.  |      |          |
|  |LOGO|  | ===> |          |
|  `----'  |      |          |
|   VC1    |      |   VC2    |
`----------'      `----------'

我想实现一个像上面的草图中描述的动画:当UI从VC1(可能是一个欢迎场景,在中心有大的标志)转移到VC2(主场景,在右上角有一个圆圈的字母 I ,这是一个ABOUT按钮),我想要这个标志逐渐转化为小圆圈 I

因为徽标视图属于VC1,而圈出的i属于VC2,我不知道如何正确地动画它们。可能是将LOGO转换成圈i的比例和位置,然后切换它们的可见性是一个好方法(我不确定)

还有其他这种类型的动画,有时简单的transform --> toggle visibility技巧无法处理:想象有一个textview(可能是一个标题)需要在动画的fromVCtoVC中同时呈现,其他视图(例如:背景)需要转换(例如;alpha混合,模糊等)。我做了一个hack,使textview在开始时属于fromVC,并在动画阶段将其赋予toVC,这在某种程度上起作用,但看起来有点脏。有更好的方法(或最好的方法)来实现这一点吗?

,-----------.      ,----------.
|           |      |  ,-----. |
|  ,-----.  |      |  |Title| |    The textview holding title may 
|  |Title|  | ===> |  `-----' |    translate during the animation
|  `-----'  |      |          |
|   VC1     |      |   VC2    |
`-----------'      `----------'

可能正在将LOGO转换为圈出的尺寸和位置,然后切换它们的可见性是一个好方法(我不确定)

是的。我就是这么做的。在单个视图控制器中管理动画,并在动画之前或之后在控制器之间即时切换。

相关内容

  • 没有找到相关文章

最新更新