GAAnimationGroup动画组
来源:互联网 发布:热模拟软件 编辑:程序博客网 时间:2024/05/22 16:36
动画组,也是CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup对象加入图层后,组中所有动画对象可以同时并发运行。
相关属性:
1.animations:保存一组动画对象的NSArray;
2.默认情况,一组动画对象可以同时运行,可以通过设置动画对象的beginTime属性来更改动画开始的时间。
#import "ViewController.h"@interface ViewController () { UIImageView *_imgView;}@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; _imgView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 50, 50)]; _imgView.image = [UIImage imageNamed:@"024.png"]; [self.view addSubview:_imgView];}
//开始触摸屏幕调用的方法
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//获得触摸点 UITouch *touch = [touches anyObject]; CGPoint p = [touch locationInView:self.view]; //创建动画组对象 CAAnimationGroup *group = [CAAnimationGroup animation]; //设置属性。 调用圆周运动和抖动的方法 CAAnimation *animation1 = [self movieWithArc:p]; CAAnimation *animation2 = [self getAnimation]; //把动画交给animations属性 group.animations = @[animation1,animation2];
//设置无限次数 group.repeatCount = MAXFLOAT;
//设置时长 group.duration = 3; //设代理 group.delegate = self; //添加到图层 [_imgView.layer addAnimation:group forKey:nil]; }
//圆周运动- (CAKeyframeAnimation *)movieWithArc:(CGPoint)touchPoint { //以手指点击的地方作为圆心,150作为半径的圆运动 //创建动画对象 CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; //设置属性 keyFrameAnimation.duration = 2; keyFrameAnimation.repeatCount = MAXFLOAT; //设置运动的路径 CGMutablePathRef path = CGPathCreateMutable(); CGPathAddArc(path, NULL, touchPoint.x, touchPoint.y, 150, 0, M_PI*2, 1); keyFrameAnimation.path = path; //释放路径(有<span style="font-family: Arial, Helvetica, sans-serif;">Create,必须有release</span>) CGPathRelease(path); return keyFrameAnimation;}
// 抖动- (CAKeyframeAnimation *)getAnimation { //创建动画化对象 CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation"]; //设置属性,抖动的角度 CGFloat num1 = M_PI_4/5.0; CGFloat num2 = -M_PI_4/5.0; animation.values = @[@(num1),@(num2),@(num1)]; animation.duration = 0.5; animation.repeatCount = MAXFLOAT; //加速方式 animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; return animation; }
动画开始和结束时调用的方法
#pragma mark - CAAnimation Delegate- (void)animationDidStart:(CAAnimation *)anim { NSLog(@"animationDidStart");}- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag { NSLog(@"animationDidStop");}
0 0
- GAAnimationGroup动画组
- 动画,专场,组动画
- 动画(三)(转场动画, 动画组)
- ios 动画(抖动,入场动画,组动画)
- 核心动画(转场动画和组动画)
- 动画组
- 动画组
- 组动画
- 转场动画和组动画
- 动画特效之动画组
- CABasicAnimation简单动画 组动画 顺序播放动画
- 核心动画中的动画组和转场动画
- iOS 之CABasicAnimation简单动画 组动画 顺序播放动画
- 核心动画(4)《转场动画和组动画》
- 50.转场动画 组动画 UIView的转场动画
- iOS抽奖转盘动画之转场动画与动画组
- CABasicAnimation动画、动画组 与简单的转场动画CATransition
- 核心动画(四)- 转场动画、组动画
- JavaCV 图像修复-小学cvInpaint 算法
- android中。makefile和.mk文件简单介绍
- 局部变量、全局变量、静态变量
- koa使用之node.js 文件加密与解密
- jQuery Mobile
- GAAnimationGroup动画组
- IntelliJ IDEA 14 注册码
- 从零使用OpenCV快速实现简单车牌识别系统
- 移植 Laravel 核心组件:如何给 TP3.1 用上 IoC 容器 (一)
- Working with Struts 2 actions
- 关于SSD1305这类OLED屏的学习
- 自动读取验证短信
- hdu-5405
- LeetCode275——H-Index II