简介
注意事项
CABasicAnimation的属性
CAMediaTiming协议的属性
实现步骤
通过storyboard创建需要执行动画的控件,并拥有它们
@property (weak, nonatomic) IBOutlet UIView *redView;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
添加动画
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//创建基本动画属性
CABasicAnimation *animation = [CABasicAnimation animation];
//指定执行动画的keyPath属性
animation.keyPath = @"transform.scale";
//设置动画的起始值与目的值
animation.fromValue = @1.0;
animation.toValue = @0.8;
/****配置动画的行为****/
//以动画的方式回复到fromValue
animation.autoreverses = YES;
//单次动画的执行时间,据说每分钟心跳72次
animation.duration = 60 / 72;
//动画的重复次数
animation.repeatCount = MAXFLOAT;
//取消动画反弹效果
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
//将动画添加到图层上
[self.redView.layer addAnimation:animation forKey:nil];
[self.imageView.layer addAnimation:animation forKey:nil];
}
执行效果如图:
若不设置fromValue值,程序将会有Bug,即多次点击屏幕时动画停止,如图
若不取消反弹效果,动画结束,会瞬间回到fromValue状态,如图
若指定autoreverses为YES,会以动画方式回到fromValue状态,如图