ios - 在 iOS 中实现跨 Controller 动画的最佳实践是什么?

标签 ios user-interface core-animation

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

我想实现一个像上面草稿中描述的动画:当 UI 从 VC1(可能是欢迎场景,中心有大 Logo )转移到 VC2(家庭场景,有一个带圆圈的字母时 i 在右上角是一个 ABOUT 按钮),我希望那个标志逐渐转变为那个小圆圈 i

因为 Logo View 属于 VC1 而带圆圈的 i 属于 VC2,所以我不知道如何正确地制作它们的动画。可能将 LOGO 转换为带圆圈的 i 的比例和位置,然后切换它们的可见性是一个好方法(我不确定)

还有其他此类动画,有时简单的 transform --> toggle visibility 技巧无法处理:假设有一个 textview(可能是一个标题)需要同时显示fromVCtoVC 的动画,其他 View (例如背景)需要转换(例如 alpha 混合、模糊等)。我做了一个 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)

是的。那就是我会做的方式。在单个 View Controller 中管理动画,并在动画之前或之后立即在 Controller 之间切换。

关于ios - 在 iOS 中实现跨 Controller 动画的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38820877/

相关文章:

ios - 从钥匙串(keychain)生成 AES 256 加密的 key

ios - iPhone - 如何向服务器发布和获取 xml 数据?

iphone - 从存储在 NSArray 中的对象获取类/类型

c++ - 在标题栏中添加一个按钮

java - 通过登录打开另一个窗口

ios - 为什么 UIView 不需要 QuartzCore.framework 来工作?

iphone - 将 UIWebview 内容转换为 UIImage

ios - 导航 Controller 如何弹出整个堆栈,包括根

c# - 多个 UI 线程 - Winforms

objective-c - 如何围绕任意点旋转对象?