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