九 iOS 之CAAnimationGroup(动画组)

本文介绍如何使用 CAAnimationGroup 在 iOS 开发中实现平移、缩放和旋转等动画效果的同时运行。通过 ViewController.m 示例代码展示了如何配置 CABasicAnimation 对象,并将其添加到 CAAnimationGroup 中,最终应用到 UIView 层上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CAAnimationGroup

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

属性说明:

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

示例演示

点击屏幕同时平移、缩放、旋转
这里写图片描述

  • 核心代码 ViewController.m
#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *redView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}


- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //同时缩放,平移,旋转

    CAAnimationGroup * group = [CAAnimationGroup animation];

    CABasicAnimation * rotation = [CABasicAnimation animation];
    rotation.keyPath = @"transform.rotation";
    rotation.toValue = @(arc4random_uniform(M_PI));

    CABasicAnimation * scale = [CABasicAnimation animation];
    scale.keyPath = @"transform.scale";
    scale.toValue =@ 0.5;


    CABasicAnimation * position = [CABasicAnimation animation];
    position.keyPath =  @"position";
    position.toValue = [NSValue valueWithCGPoint:CGPointMake(arc4random_uniform(200), arc4random_uniform(200))];

    group.animations = @[rotation,scale,position];


    //取消动画反弹
    group.removedOnCompletion = NO;

    //设置动画执行完成后保持最新的效果
    group.fillMode = kCAFillModeForwards;

    [_redView.layer addAnimation:group forKey:nil];


}

@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值