CAValueFunction
提供了定义动画转换的灵活方法的对象。
声明
class CAValueFunction : NSObject
您可以使用值函数来指定动画转换的各个组件。例如,要创建一个绕z轴从0°到180°旋转图层的基本动画,需要创建一个CABasicAnimation对象,fromValue为0,toValue为pi, valueFunction为CAValueFunction。
以下代码展示了如何创建这样一个旋转,并将其应用到名为rotatingLayer的CALayer:
let rotateAnimation = CABasicAnimation()
rotateAnimation.valueFunction = CAValueFunction(name: .rotateZ)
rotateAnimation.fromValue = 0
rotateAnimation.toValue = Float.pi
rotateAnimation.duration = 3
rotatingLayer.add(rotateAnimation,
forKey: "transform")
对于单独的x, y和z分量,值函数缩放和平移需要3个值。当使用这些值函数时,你可以将动画的fromValue和toValue指定为数组。
以下代码展示了如何使用值函数使层的缩放从0到1进行动画处理:
let scaleAnimation = CABasicAnimation()
scaleAnimation.valueFunction = CAValueFunction(name: .scale)
scaleAnimation.fromValue = [0, 0, 0]
scaleAnimation.toValue = [1, 1, 1]
scaleAnimation.duration = 3
scalingLayer.add(scaleAnimation,
forKey: "transform")
获得价值函数属性
name
返回值函数的名称。
创建和初始化值功能
init(name:)
方法标识的值函数对象的名字。
name的可能值在旋转值函数、缩放值函数和转换函数中指定。
旋转
- rotateX 以X轴旋转
- rotateY 以Y轴旋转
- rotateZ 以Z轴旋转
缩放
- scale 整体缩放
- scaleX X轴缩放
- scaleY Y轴缩放
- scaleZ Z轴缩放
位移
- translate 整体位移
- translateX 沿X轴位移
- translateY 沿Y轴位移
- translateZ 沿Z轴位移