CABasicAnimation 使用

时间:2023-03-08 17:21:48

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