CABasicAnimation 使用

1. 基本使用

    UIView * view = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 50,50)];

    view.backgroundColor = [UIColor orangeColor];

    [self.view addSubview:view];

    /////

    CABasicAnimation * anim = [CABasicAnimation animationWithKeyPath:@"transform.scale"];

    anim.duration = 0.5;

    anim.repeatCount = 1;

    anim.fromValue = @1;

    anim.toValue = @0.3;

    [view.layer addAnimation:anim forKey:nil];

   这个动画的作用是,view的大小在0.5秒之内,缩小到原来的30%,然后迅速的回到原来的大小。

   如果anim.autoreverses 设置为YES的话,那就不是“迅速”变为原来的大小,而是从30%的大小反过来变成原来的大小,时间也未duration的值。

   这里的 duration为一个repeat的时间,也就是说,如果repeatCount为10,那其实就是10个duration的时间(如果duration为YES的话,还需要*2)

   如何让动画结束后保持动画后的状态?

   上面的例子我们看到,动画在结束的时候,返回到原来的大小了,那么如何才能使得动画结束后保持在30%的状态呢?

   如下两个语句可以满足:anim.removedOnCOmpletion = NO;  anim.fillMode = kCAFillModeForwards;

   

2.keypath 可以取值如下

 

transform.scale = 比例轉換

    transform.scale.x = 闊的比例轉換

    transform.scale.y = 高的比例轉換

    transform.rotation.z = 平面圖的旋轉

    opacity = 透明度

    margin

    zPosition

    backgroundColor    背景颜色

    cornerRadius    圆角

    borderWidth

    bounds

    contents

    contentsRect

    cornerRadius

    frame

    hidden

    mask

    masksToBounds

    opacity

    position

    shadowColor

    shadowOffset

    shadowOpacity

    shadowRadius