可以保存一组动画对象,将CAAnimationGroup对象加入层后,组中所有动画对象可以同时并发运行

属性解析:

animations:用来保存一组动画对象的NSArray

默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间

#import "ViewController.h"

@interface ViewController ()
@property(nonatomic,strong)UIButton *btn;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.btn=[UIButton buttonWithType:UIButtonTypeCustom];
    self.btn.frame=CGRectMake(50, 100, 80, 60);
    [self.btn setTitle:@"按钮" forState:UIControlStateNormal];
    [self.btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [self.btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:self.btn];
}
-(void)btnClick:(id)sender
{
    CABasicAnimation *a1 = [CABasicAnimation animation];
    a1.keyPath = @"transform.translation.y";
    a1.toValue = @(100);
    // 缩放动画
    CABasicAnimation *a2 = [CABasicAnimation animation];
    a2.keyPath = @"transform.scale";
    a2.toValue = @(2.0);
    // 旋转动画
    CABasicAnimation *a3 = [CABasicAnimation animation];
    a3.keyPath = @"transform.rotation";
    a3.toValue = @(-3.1415926/4);

    // 组动画
    CAAnimationGroup *groupAnima = [CAAnimationGroup animation];
    groupAnima.animations = @[a1, a2, a3];

    //设置组动画的时间
    groupAnima.duration = 2;
    groupAnima.fillMode = kCAFillModeForwards;
    groupAnima.removedOnCompletion = NO;
    [self.btn.layer addAnimation:groupAnima forKey:nil];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}
@end

最新文章

  1. php解析.csv文件
  2. C#知识点总结系列:4、C#中Monitor和Lock以及区别
  3. Linux第三周——跟踪分析内核的启动过程
  4. [deviceone开发]-echart的简单报表示例
  5. Qt 文件处理
  6. java抽象类和接口的区别
  7. CSS总结 最后的选择符和字体、元素常见样式
  8. Ubuntu14.04环境下Samba报错排错过程
  9. centos性能监控系列一:常用监控命令
  10. sqlservice 查询该字段的值是否为数字、不包含a-z字母、获取中文的首字母
  11. Swift - 16 - String.Index和Range
  12. PCB打样镀层问题
  13. PHP实现一个简单url路由功能
  14. Apache Spark 2.2.0 中文文档 - Spark RDD(Resilient Distributed Datasets)论文 | ApacheCN
  15. nginx 安装、启动、重启、关闭 (linux系统命令行)
  16. 修复FFMPEG 复用 PAT、PMT发送间隔小于25ms的错误
  17. golang lua使用示例
  18. iPhone屏幕尺寸说明及iPhone在微信上的一些表现
  19. Python利用PIL生成随机验证码图片
  20. WebAPI使用Token进行验证

热门文章

  1. MCU编程_基础
  2. 利用RGB-D数据进行人体检测 带dataset
  3. VIM 实现tab标签页及分屏,切换命令
  4. C#解密退款req_info结果通知
  5. C#系统登录随机验证码生成及其调用方法
  6. MVC+Nhibernate+spring.net(一)
  7. 【kuangbin专题】计算几何_凸包
  8. Javascript如何避免连续调用中取到不存在的属性而导致报TypeError错?
  9. IIS 301重定向 报错 地址后面有eurl.axd
  10. 03-01 Java运算符