#import "ViewController.h"
@interface ViewController ()
{
CALayer *_layer;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_layer = [[CALayer alloc] init];
_layer.bounds = CGRectMake(0, 0, 100, 100);
_layer.position = CGPointMake(100, 100);
_layer.backgroundColor = [UIColor redColor].CGColor;
_layer.contents = (id)[UIImage imageNamed:@"heart.png"].CGImage;
[self.view.layer addSublayer:_layer];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self basicAnimation2];
}
- (void)basicAnimation2
{
//创建基础动画对象
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
//设置属性改变的值
//旋转
// animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI, 0, 0, 1)];
//缩放
animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.5, 0.5, 1)];
//设置动画时长
animation.duration = 0.5;
//取消反弹
//动画执行完毕后不要把动画移除
animation.removedOnCompletion = NO;
//保持最新的位置
animation.fillMode = kCAFillModeForwards;
//重复动画的次数
animation.repeatCount = MAXFLOAT;
//给图层添加动画
[_layer addAnimation:animation forKey:nil];
}
- (void)basicAnimation1
{
//创建基础动画动画对象
CABasicAnimation *animation = [[CABasicAnimation alloc] init];
//设置动画的属性
// animation.keyPath = @"position";
// animation.keyPath = @"bounds";
animation.keyPath = @"backgroundColor";
//设置属性改变的值
// animation.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];
// animation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];
animation.toValue = (id)[UIColor blackColor].CGColor;
//设置动画时长
animation.duration = 0.5;
animation.repeatCount = MAXFLOAT;
//取消反弹
//动画执行完毕后不要把动画移除
animation.removedOnCompletion=NO;
//保持最新的位置
animation.fillMode = kCAFillModeForwards;
//给图层添加了动画
[_layer addAnimation:animation forKey:nil];
}