Core Animation 多个动画顺序播放

这篇博客探讨了如何在Core Animation中实现多个动画的顺序播放。由于没有找到官方的直接解决方案,作者通过设置动画的delegate,实现了一个自定义的方法:创建所有动画对象并存储在数组中,启动第一个动画并在animationDidStop回调中依次播放剩余动画,以此达到序列播放的效果。
摘要由CSDN通过智能技术生成

同时播放多个动画效果很容易,多次调用addAnimation或者CAAnimationGroup就可以。那么如何序列化播放多个动画呢?

搜索了一下,也不知道是我没搜到,还是苹果就没有提供相应的封装,反正我是没看到官方的做法。

那就自己搞个解决方案吧。

看了一下CAAnimation的定义,发现有个delegate,

@interface CAAnimation : NSObject
    <NSCoding, NSCopying, CAMediaTiming, CAAction>
{
@private
  void *_attr;
  uint32_t _flags;
}

/* Creates a new animation object. */

+ (instancetype)animation;

/* Animations implement the same property model as defined by CALayer.
 * See CALayer.h for more details. */

+ (id)defaultValueForKey:(NSString *)key;
- (BOOL)shouldArchiveValueForKey:(NSString *)key;

/* A timing function defining the pacing of the animation. Defaults to
 * nil indicating linear pacing. */

@property(strong) CAMediaTimingFunction *timingFunction;

/* The delegate of the animation. This object is retained for the
 * lifetime of the animation object. Defaults to nil. See
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值