CABasicAnimation精讲
来源:互联网 发布:中国人民大学网络登录 编辑:程序博客网 时间:2024/06/11 03:16
转载自:http://www.huangyibiao.com/archives/229
本教程写了这个效果图的demo,同时总结CABasicAnimation的使用方法。
看完gif动画完,看到了什么?平移、旋转、缩放、闪烁、路径动画。
实现平移动画
实现平移动画,我们可以通过transform.translation
或者水平transform.translation.x
或者垂直平移transform.translation.y
添加动画。
translation
是平移的意思,大家需要记住它。这里只是水平移动,其实我们可以直接对transform.translation.x
设置动画。不过直接使用transform.translation
也是可以的,我们设置y
值为0就可以了。
首先,我们通过属性路径的方法来创建动画对象:
我们设置目的地为水平移动到屏宽再减去控件的宽50,由于我们只是水平移动,垂直方向没有移动,因此第二个参数设置为0即可。我们需要明确一点,toValue
这里是指移动的距离而不是移到这个点:
对于其它属性的设置,看注释里的说明就可以明白了。
旋转动画
旋转动画需要借助CATransform3D
这个表示三维空间的结构体,可以X轴旋转、Y轴旋转、Z轴旋转:
我们通过属性路径创建动画:
然后通过创建CATransform3D
结构体,指定旋转的角度为180度,X、Y轴不旋转,Z轴旋转180度:
其它属性设置与平移动画一样。
缩放动画
transform.scale
这个是图的属性路径,设置scale
值就可以达到缩放的效果:
我们通过属性路径方法创建动画对象:
我们设置了初始变换和最终变换为1和0:
其实由于图初始状态值为正常状态,没有任何缩放,因此其值本就是1,所以fromValue
可以不设置的。
闪烁动画
我们这里说的闪烁动画其实就是透明度的变化,当然我们不能通过alpha
值的变化来实现闪烁动画,因此这个属性是不具备隐式动画效果的。不过系统提供了opacity
,我们可以通过这个值的变化来实现闪烁效果。
我们通过属性路径opacity
来创建动画对象,注意不能使用alpha
,否则不会有动画效果的:
我们设置透明度从1->0变换,其它属性设置与上面平移动画一样:
路径动画
路径动画这里添加了灰常详细的注释说明,几乎都包含了所有常用的属性设置了:
在图中position
是层相对于父层的中心,而UI控件的center
中心一样。这里要整体曲线路径移动,我们通过position
中心点的变换就可以曲线路径移动。
这里设置了CAMediaTiming
协议中的所有属性,详细看代码中的注释吧,已经很详细了!
源代码
小伙伴们可以到github下载源代码了:CALayerDemo随手点个star吧~!
- CABasicAnimation精讲
- CABasicAnimation精讲
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation
- CABasicAnimation汇总
- CABasicAnimation用法
- 【Android】第三方统计之Bugly
- VritualBox安装CentOS7
- 去掉菜单栏全屏显示
- thinkphp 字母函数介绍T/I/N/D/M/A/R/U
- java解析和创建JSON
- CABasicAnimation精讲
- 【腾讯TMQ】糖大夫--测量流程性能监控自动化方案设计
- MySQL 链接eclipse
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest
- Ubuntu14.04 下 OpenCV3 安装
- <2>tableIsExist
- 客户端axis调用cxf服务端webservice接口问题
- Android 解决多个Fragment切换时不断实例化
- 输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果