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) 表示执行的方向 和路径的范围








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值