您的位置:首页 > 移动开发 > IOS开发

ios开发之动画组

2016-01-15 23:16 274 查看
CABasicAnimation和CAKeyframeAnimation仅仅作用于单独的属性,而CAAnimationGroup可以把这些动画组合在一起。CAAnimationGroup是

另一个继承于CAAnimation的子类。它添加了一个animations数组的属性,用来组合别的动画。

- (void)viewDidLoad {
[super
viewDidLoad];
self.containerView = [[UIView
alloc]initWithFrame:CGRectMake(0,
150, 200,
200)];
[self.view
addSubview:self.containerView];
//create a path
UIBezierPath *bezierPath = [[UIBezierPath
alloc]init];
[bezierPath moveToPoint:CGPointMake(0,
150)];
[bezierPath addCurveToPoint:CGPointMake(200,
150) controlPoint1:CGPointMake(75,
0) controlPoint2:CGPointMake(0,
150)];

//draw the path using a CAShapeLayer
CAShapeLayer *pathlayer = [CAShapeLayer
layer];
pathlayer.path = bezierPath.CGPath;
pathlayer.fillColor = [UIColor
whiteColor].CGColor;
pathlayer.strokeColor = [UIColor
redColor].CGColor;
pathlayer.lineWidth =
3.0f;
[self.containerView.layer
addSublayer:pathlayer];

//add a colored layer
CALayer *colorLayer = [CALayer
layer];
colorLayer.frame =
CGRectMake(0,
0, 64,
64);
colorLayer.backgroundColor = [UIColor
greenColor].CGColor;
[self.containerView.layer
addSublayer:colorLayer];

//create the position animation
CAKeyframeAnimation *animation = [CAKeyframeAnimation
animation];
animation.keyPath =
@"position";
animation.path = bezierPath.CGPath;
animation.rotationMode =
kCAAnimationRotateAuto;

//create the color animation
CABasicAnimation *animation2 = [CABasicAnimation
animation];
animation2.keyPath =
@"backgroundColor";
animation2.toValue = (__bridge
id)[UIColor
redColor].CGColor;

//create group animation
CAAnimationGroup *groupAnimation = [CAAnimationGroup
animation];
groupAnimation.animations =
@[animation,animation2];
groupAnimation.duration =
4.0;

//add the animation to the color layer
[colorLayer addAnimation:groupAnimation
forKey:nil];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: