iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations

本节将介绍CALayer与Core Animation基础,找找经过Layer操做动画的感受,你将学到如何移动、隐藏显示Layer的方法swift

animation properties

Layer中不少动画属性的使用方法与View相似,例如frame、position、opacity等,另外还提供了border、shadow等新属性,接下来咱们来看看Layer中给了咱们什么能够动画变化的属性动画

Position and size

  • bound
    Layer的范围code

  • position
    Layer在父Layer中的的位置,能够分别修改x、y
    -transform
    改变中国属性能够移动、缩放、旋转Layer,甚至能够加入3D动画orm

Border

  • borderColor
    边框颜色对象

  • borderWidth
    边框宽度ci

  • cornerRadius
    角的弧度,能够实现圆角animation

Shadow

  • shadowOffset
    改变这个属性能够改变阴影与Layer的远近it

  • shadowOpacity
    改变这个属性能够改变阴影的显示io

  • shadowPath
    改变Layer shadow的形状,能够加入各类各样的3D效果form

  • shadowRadius
    改变阴影的模糊程度,在模拟物体朝向屏幕运动或远离屏幕的动画中使用较多

Contents

  • content
    改变这个属性能够改变Layer内含的TIFF、PNG原始数据

  • mask
    改变这个属性能够改变图像上的遮盖

  • opacity
    改变内容的透明度

以上的属性就已经足够你实现一些基于Layer的动画了,下面咱们经过Demo练习一下

First Layer Animation

此次咱们的Demo利用Layer Animation替换以前登陆页面Demo中的View Animation
咱们从heading开始,在viewWillAppearviewDidAppear方法中删除有关代码(对于控件初位置的设定在动画中实现)

建立动画

咱们在在viewDidAppear方法中添加动画

let flyRight = CABasicAnimation(keyPath: "position.x") 
    flyRight.fromValue = -view.bounds.size.width/2 
    flyRight.toValue = view.bounds.size.width/2 
    flyRight.duration = 0.5

CoreAnimation中的对象都是一些简单的数据模型,咱们只需实例化并设置相应的数据便可
一个CA实例描述了具体的Layer动画,你能够随时使用这个动画
这些动画实例并不急于具体的Layer,你能够在须要的时候重用代码,每次添加动画时都会建立它的一份拷贝
对于一个CA对象,你能够很方便的经过keypath参数具体说明动画的属性
随后咱们设置了fromValuetoValue属性调整了动画的开始与结束
最后咱们设置了动画进行的时间

把动画添加到layer上

经过上面的代码咱们已经建立了动画,如今咱们来把动画添加到具体的layer上

heading.layer.addAnimation(flyRight, forKey: nil)

咱们这里调用的addAnimation(_: forKey:)方法用于将CA对象建立一个拷贝而且应用在layer上,第二个参数forKey仅仅用于动画的使用者,经过这个参数能够实现改变、中止这个动画等操做。

相关文章
相关标签/搜索