美文网首页iOS开发
Animation_KeyFrameAnimation

Animation_KeyFrameAnimation

作者: iOS小童 | 来源:发表于2017-11-23 12:51 被阅读9次

Welcome to my blog. Thanks.

Dome: github地址

CAPropertyAnimation 的子类有CABsicAnimation 和 CAKeyframeAnimation。
今天要说的就是CAKeyframeAnimation关键帧动画,毫无疑问一切复杂的动画都是由简单的动画拼接来的,知其所以然,需要的时候必定能写出好的动画

keyFrameAnimation

属性值了解

1、关键帧值数组,一组变化值

@property(nullable, copy) NSArray *values;

2、关键帧帧路径,优先级比values大

@property(nullable) CGPathRef path;

3、每一帧对应的时间,时间可以控制速度.它和每一个帧相对应,取值为0.0-1.0,不设则每一帧时间相等.

@property(nullable, copy) NSArray *keyTimes;

4、每一帧对应的时间曲线函数,也就是每一帧的运动节奏

@property(nullable, copy) NSArray *timingFunctions;

5、动画的计算模式,默认值: kCAAnimationLinear.有以下几个值:

@property(copy) NSString *calculationMode;

kCAAnimationLinear
关键帧为座标点的时候,关键帧之间直接直线相连进行插值计算;

kCAAnimationDiscrete
离散的,也就是没有补间动画

kCAAnimationPaced
平均,keyTimes跟timeFunctions失效

kCAAnimationCubic
对关键帧为座标点的关键帧进行圆滑曲线相连后插值计算,对于曲线的形状还可以通过tensionValues,continuityValues,biasValues来进行调整自定义,keyTimes跟timeFunctions失效

kCAAnimationCubicPaced
在kCAAnimationCubic的基础上使得动画运行变得均匀,就是系统时间内运动的距离相同,,keyTimes跟timeFunctions失效

6、动画的张力,当动画为立方计算模式的时候此属性提供了控制插值,因为每个关键帧都可能有张力所以连续性会有所偏差它的范围为[-1,1].同样是此作用

@property(nullable, copy) NSArray *tensionValues;

7、动画的连续性值

@property(nullable, copy) NSArray *continuityValues;

8、动画的偏斜率

@property(nullable, copy) NSArray *biasValues;

9、动画沿路径旋转方式,默认为nil.它有两个值:

@property(nullable, copy) NSString *rotationMode;
kCAAnimationRotateAuto
自动旋转
kCAAnimationRotateAutoReverse
自动翻转

动画应用

draw a curve

keyFrame:
path:路径
duration:单次时间
rotationMode:旋转样式
repeatCount:重复次数

1、弧形

- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise ;
center : 弧形的中心
radius: 弧形的半径
startAngle:弧形开始弧度
endAngle:弧形结束弧度
colockwise:顺逆时针

2、抛物线

- (void)moveToPoint:(CGPoint)point
- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint;
point:开始位置
endPoint:结束位置
controlPoint:拐点位置

3、椭圆形

+ (instancetype)bezierPathWithOvalInRect:(CGRect)rect;
rect: x起点
       y起点
       width宽度
       height高度

4、圆形

rect:
width = height

相关文章

网友评论

    本文标题:Animation_KeyFrameAnimation

    本文链接:https://www.haomeiwen.com/subject/jwkzvxtx.html