模仿花瓣APP的转场动画实现
2016年6月9日
2016.11.30更新
最近在看 Raywenderlich 的动画书,碰巧看到了一样的转场动画。我新写了一篇文章介绍正常的做法。
然后根据这段时间的积累,我优化了一下之前的代码,具体请看看正文部分。
动画效果
花瓣APP的转场动画比较有意思,我第一次看到就喜欢上了,为了美化自己毕业设计的游戏APP,我模仿了这个动画效果,花瓣APP的动画效果是这样的:
这是我自己模仿的动画效果:
其实效果还可以,不流畅是gif图的问题。
实现思路
我的思路是点击视图时给该视图截图,生成UIImage,然后在0.4秒的时间内把这个图片放大到全屏幕(即转场后的视图的初始模样),动画效果结束的回调中放置真正的转场逻辑。
我的思路就是这样,感觉比较简单,有个问题是我截图之后图片放大材质会失真,转场后的场景是Spritekit的GameScene,重新加载了材质,就清晰很多,在它们衔接的时候会明显感觉到材质变清晰了,这个问题我没有去解决它,可能因为我比较粗的原因。不过回退的转场动画是从第二个视图截的图,不会有材质失真的问题。
Spritekit场景下截图参考了这篇文章。
附上核心代码
UIView截图
|
|
动画效果
|
|
动画部分是可以优化的,用变形(transform
)替代尺寸(frame
)可以让细节更加平滑一些
|
|
Spritekit场景中截图
|
|