標籤:
首先建立layer
CALayer *layer = [CALayer layer];
layer.bounds = CGRectMake(0, 0, 100, 100);
layer.position = CGPointMake(100, 100);
layer.backgroundColor = [UIColor yellowColor].CGColor;
[self.view.layer addSublayer:layer];
self.layer = layer;
設定點擊事件
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
// [self animationScale];
[self keyAnimation];
}
縮小動畫
-(void)animationScale{
CABasicAnimation *anim = [CABasicAnimation animation];
//2設定動畫
// anim.keyPath = @"bounds";//平移
// anim.keyPath = @"position";//縮放
anim.keyPath [email protected]"transform";
//到達哪個點
// anim.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 50, 50)];
// anim.toValue = [NSValue valueWithCGPoint:CGPointMake(300,300)];
anim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_4, 1, 1, 0)];
anim.duration = 2;
anim.removedOnCompletion = NO;
anim.fillMode = @"forwards";
[self.layer addAnimation:anim forKey:nil];
}
-(void)keyAnimation
{
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
anim.removedOnCompletion = NO;
anim.fillMode = kCAFillModeForwards;
anim.duration = 2;
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, NULL, CGRectMake(100, 100, 200, 200));
anim.path = path;
anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[self.layer addAnimation:anim forKey:nil];
}
iOS學習筆記28-基礎動畫和主要畫面格動畫