最近看到了一个比较好看的动画效果,就是通过点击了一个View,被点击的View会被翻转过来,然后在其背面显示出另一个ViewController的内容。就像一张两面的板子被翻转一样。于是在最近的项目里面就写了下这个效果:
思路是这样的,先将被显示的ViewController的内容渲染到一张图片上去。
然后在window上面添加一个新的View将被点的View的内容渲染成图片后显示在此新建的View上,并且调整新建的view的位置。
隐藏被点View,然后开始反转动画。为了简单起见动画分为2步,第一步为旋转90度。第二步开始反向旋转90度,但是在开始之前将ViewController的图片显示在该View上。
最后将Viewcontroller Present出来就好了。
具体看代码吧
给UIViewController建一个Category,这样使用就很方便了。
所有代码在下面:
- (void)flipView:(UIView *)view toPrese