IOS新版iBooks吸引人的地方除了有干净整洁的界面、方便灵活的操作以及大容量的书籍容量以外,还有其优秀的用户交互,尤其是其动画的使用。打开一本书时书本缓慢放大并打开,关闭一本书后书本关闭并回到原位置。现在我们来实现这个简单的功能。
效果图:
用到的知识:
1、CAKeyframeAnimation的应用
2、如何在代理中区分两个不同的动画
3、坐标系转换
思路:
这个动画主要用到的是CAAnimation,并且是CAKeyframeAnimation,当用户点击书本时,设置一个UIImageView(为其加上tag方便以后取)并将其放在选中书本的位置上(使用坐标系转换),接着通过动画将其放大到全屏,完成后将其锚点设置为(0,0.5)并让其绕y轴选中π/2角度,将早已放在下面的textView(本app中是自定义的readView)展示出来。动画完成后将UIImageView的透明度设为0。这样就是书本的打开过程。关闭过程类似,根据tag取出UIImageView并将其旋转,然后设置frame到原来书本的位置(可以用私有变量记录该位置),最后removeFromSuperview即可。
代码:
首先是“准备阶段”