本文主要是介绍IOS 百叶窗动画,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
之前看到多利用苹果开发的OpenGL接口实现的帧动画,原理是利用 Edward Patel 封装 EPGLTransitionView,绘制百叶窗的不同时间帧,实现动画效果。
考虑过将其移植到自己的代码中,但因为对OpenGL完全不懂,不能很好的切合到自己的代码里,放弃了。
后来,想到一个方法,将UIView截屏成图片,然后将图片等份切割成6份(我的代码里是6份),然后用6个UIImageView容纳这些切割后的UIImage图片,每个UIImageView代表一个扇叶,每个扇叶均沿着自己的Y轴旋转90度,这样模拟百叶窗的动画就完成了。
具体实现上有几个需要注意的地方
1、旋转要是绕着左边轴,右边轴,还是中轴旋转;如果是两边轴,那么在做仿射矩阵变化时需要做些处理。
2、6个UIImageView的动画启动有时间差。这个问题,我才用动画关键帧的方法处理(animateKeyframesWithDuration ,addKeyframeWithRelativeStartTime)
3、切割图片,要注意UIImge.scale属性
因为主要变换都是仿射矩阵变化,所以其他平台、其他语言也应该可以用相同的方式处理
这篇关于IOS 百叶窗动画的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!