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];
}
另一个继承于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];
}
相关文章推荐
- iOSCore Location地理定位的简单实用
- iOS之应用偏好设置
- iOS学习之应用偏好设置
- 蓝懿IOS阶段测试
- KVO/KVC系列概论
- iOS如何写入日历 提醒?
- 蓝懿iOS 技术内容和心得 16.1.15
- iOS 一个方法 解决四舍五入
- iOS 添加字体库 —— HERO博客
- [iOS学习]block初识
- iOS9新特性 3DTouch 开发教程全解(含源码)
- IOS 开发的官方文档链接
- iOS 多线程之GCD
- IOS使用Xib创建自定义View
- 关于iOS启动页面
- iOS 【Multithreading-线程间的交互通信(图片下载示例)(掌握)】
- IOS 时间格式 时间转换 大总结
- ios基本图形绘制
- ios 公司账号申请
- iOS开发遇到的问题