iOS开发CABasicAnimation基本动画 各种属性

释放双眼,带上耳机,听听看~!
 /***
CABasicAnimation
使用方法animationWithKeyPath" 对CABasicAnimation 进行实例化注册,并指定layer的属性作为关键路径注册
CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
属性
duration  动画时长
repeatCont 重复次数。持续不停设置HUGE_VALF
repeatDuration :设置重复动画时间,在该时间内,动画一直执行,不计次数。
beginTime :指定动画开始的时间。默认立即开始。需要延迟的话设置为【CACurrentMediaTime()+秒数】的方式
timingFunction:设置动画的速度变化
autoreverses 动画结束的时候,是否执行逆动画
fromValue 所改变属性的起始值
tovalue  所改变属性结束时的值
byValue  所改变属性相同起始值得改变量
timingFunction:{
transformView.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear
kCAMediaTimingFunctionLinear :匀速运动
kCAMediaTimingFunctionEaseIn :由慢到快,加速
kCAMediaTimingFunctionEaseOut:由快到慢,减速
kCAMediaTimingFunctionEaseInEaseOut:动画在开始和结束的时候慢,中间时间快
}
fillMode
该属性定义了你的动画在开始和结束时的动作。默认值是 kCAFillModeRemoved
kCAFillModeRemoved :动画将在设置的beginTime开始执行(如果没设置,则动画立即执行),动画完成后layer 降恢复到初始状态
kCAFillModeForwards 设置为该值,动画即使之后layer的状态将保持在动画的最后一帧,而removedOnCompletion的默认属性值是 YES,所以为了使动画结束之后layer保持结束状态,应将removedOnCompletion设置为NO。
kCAFillModeBackwards 设置为该值,将会立即执行动画的第一帧,不论是否设置了 beginTime属性
kCAFillModeBoth 该值是 kCAFillModeForwards 和 kCAFillModeBackwards的组合状态
removedOnCompletion// 结束的时候移除
*/

例子 图片沿着x轴旋转

 CABasicAnimation *transformView = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];
transformView.fromValue =@(0);
transformView.toValue = @(M_PI*2);
transformView.repeatCount = HUGE_VALF;
transformView.repeatDuration = HUGE_VALF;
transformView.duration = 2;
transformView.removedOnCompletion = NO;
transformView.fillMode = kCAFillModeForwards;
transformView.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
[imageview.layer addAnimation:transformView forKey:@"animation"];

常用的

animationWithKeyPath总结

    transform.scale    比例转化    @(0.8)

    transform.scale.x    宽的比例    @(0.8)

    transform.scale.y    高的比例    @(0.8)

    transform.rotation.x    围绕x轴旋转    @(M_PI)

    transform.rotation.y    围绕y轴旋转    @(M_PI)

    transform.rotation.z    围绕z轴旋转    @(M_PI)

    cornerRadius    圆角的设置    @(50)

    backgroundColor    背景颜色的变化    (id)[UIColor purpleColor].CGColor

    bounds    大小,中心不变    [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];

    position    位置(中心点的改变)    [NSValue valueWithCGPoint:CGPointMake(300, 300)];

    contents    内容,比如UIImageView的图片    imageAnima.toValue = (id)[UIImage imageNamed:@”to”].CGImage;

    opacity    透明度    @(0.7)

    contentsRect.size.width    横向拉伸缩放    @(0.4)最好是0~1之间的

     //折线图 会用到  strokeStart  strokeEnd

   strokeStart  动画的fromValue = 0,toValue = 1

  表示从路径的0位置画到1 怎么画是按照清除开始的位置也就是清除0 一直清除到1 效果就是一条路径慢慢的消失

   trokeStart  动画的fromValue = 1,toValue = 0

   表示从路径的1位置画到0 怎么画是按照清除开始的位置也就是1 这样开始的路径是空的(即都被清除掉了)一直清除到0 效果就是一条路径被反方向画出来

   strokeEnd  动画的fromValue = 0,toValue = 1

 表示 这里我们分3个点说明动画的顺序  strokeEnd从结尾开始清除 首先整条路径先清除后2/3,接着清除1/3 效果就是正方向画出路径

 strokeEnd  动画的fromValue = 1,toValue = 0

 效果就是反方向路径慢慢消失

 注释: 动画的0-1(fromValue = 0,toValue = 1) 或1-0 (fromValue = 1,toValue = 0) 表示执行的方向 和路径的范围

 

 

 

人已赞赏
iOS文章

iOS webview webViewDidFinishLoad 执行多次

2020-3-11 12:00:08

iOS文章

Swift和Objective-C的相同点和不同点

2020-3-11 17:55:44

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索