iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations
本节将介绍CALayer与Core Animation基础,找找通过Layer操作动画的感觉,你将学到如何移动、隐藏显示Layer的方法
animation properties
Layer中很多动画属性的使用方法与View类似,例如frame、position、opacity等,另外还提供了border、shadow等新属性,接下来我们来看看Layer中给了我们什么可以动画变化的属性
Position and size
bound
Layer的范围position
Layer在父Layer中的的位置,可以分别修改x、y
-transform
改变中国属性可以移动、缩放、旋转Layer,甚至可以加入3D动画
Border
borderColor
边框颜色borderWidth
边框宽度cornerRadius
角的弧度,可以实现圆角
Shadow
shadowOffset
改变这个属性可以改变阴影与Layer的远近shadowOpacity
改变这个属性可以改变阴影的显示shadowPath
改变Layer shadow的形状,可以加入各种各样的3D效果shadowRadius
改变阴影的模糊程度,在模拟物体朝向屏幕运动或远离屏幕的动画中使用较多
Contents
content
改变这个属性可以改变Layer内含的TIFF、PNG原始数据mask
改变这个属性可以改变图像上的遮盖opacity
改变内容的透明度
以上的属性就已经足够你实现一些基于Layer的动画了,下面我们通过Demo练习一下
First Layer Animation
这次我们的Demo利用Layer Animation替换之前登录页面Demo中的View Animation
我们从heading开始,在viewWillAppear及viewDidAppear方法中删除有关代码(对于控件初位置的设定在动画中实现)
创建动画
我们在在viewDidAppear方法中添加动画
let flyRight = CABasicAnimation(keyPath: "position.x") flyRight.fromValue = -view.bounds.size.width/2 flyRight.toValue = view.bounds.size.width/2 flyRight.duration = 0.5CoreAnimation中的对象都是一些简单的数据模型,我们只需实例化并设置相应的数据即可
一个CA实例描述了具体的Layer动画,你可以随时使用这个动画
这些动画实例并不急于具体的Layer,你可以在需要的时候重用代码,每次添加动画时都会创建它的一份拷贝
对于一个CA对象,你可以很方便的通过keypath参数具体说明动画的属性
随后我们设置了fromValue、toValue属性调整了动画的开始与结束
最后我们设置了动画进行的时间
把动画添加到layer上
通过上面的代码我们已经创建了动画,现在我们来把动画添加到具体的layer上
heading.layer.addAnimation(flyRight, forKey: nil)我们这里调用的addAnimation(_: forKey:)方法用于将CA对象创建一个拷贝并且应用在layer上,第二个参数forKey仅仅用于动画的使用者,通过这个参数可以实现改变、停止这个动画等操作。
总结
以上是生活随笔为你收集整理的iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 309.Best Time to Buy
- 下一篇: 表单新特性