动画组(CAAnimationGroup)Swift3.0

1. 创建动画组
  // 创建组动画
  let groupAnimation = CAAnimationGroup()
  groupAnimation.beginTime = CACurrentMediaTime() + 0.5
  groupAnimation.duration = 0.5
  groupAnimation.fillMode = kCAFillModeBackwards

  /**
     1. “子动画”不需要在设置duration、fillMode等属性
     2. “子动画”的duration、fillMode将使用“组动画”的设置
     */
  // 缩放效果(创建子动画)
  let scaleDown = CABasicAnimation(keyPath: "transform.scale")
  scaleDown.fromValue = 3.5
  scaleDown.toValue = 1.0

  // 旋转效果(创建子动画)
  let rotate = CABasicAnimation(keyPath: "transform.rotation")
  rotate.fromValue = .pi / 4.0
  rotate.toValue = 0.0

  // 透明度变化效果(创建子动画)
  let fade = CABasicAnimation(keyPath: "opacity")
  fade.fromValue = 0.0
  fade.toValue = 1.0

  // 组合动画(将子动画组合到组动画中)
  groupAnimation.animations = [scaleDown, rotate, fade]
  loginButton.layer.add(groupAnimation, forKey: nil)
2. Layer动画缓和

CAMediaTimingFunction有一些预定义的缓动函数,您可以按名称使用它们:

• kCAMediaTimingFunctionLinear:匀速运行整个动画。
• kCAMediaTimingFunctionEaseIn:整个动画,先慢后快。效果如下图所示:
kCAMediaTimingFunctionEaseIn.png
• kCAMediaTimingFunctionEaseOut:效果与kCAMediaTimingFunctionEaseIn相反,
整个动画,先快后慢。效果如下图所示:
kCAMediaTimingFunctionEaseOut.png
• kCAMediaTimingFunctionEaseInEaseOut:整个动画,开始和结束慢,中间快。
效果如下图所示:
kCAMediaTimingFunctionEaseInEaseOut.png

设置“组动画”动画缓和,例子如下:

  // 设置动画缓和
  groupAnimation.timingFunction =
    CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn)
3. Layer动画重复

如下属性设置动画重复:

repeatCount:设置动画重复次数
repeatDuration:设置重复动画总时间,与repeatCount选择其一即可。
autoreverses:设置是否在一次动画完成后,反向播放动画。

例子如下:

  flyLeft.duration = 5.0
  flyLeft.repeatCount = 4
4. Layer动画速度
// 设置动画的速度
flyLeft.speed = 2.0
// 设置图层的速度
/**
  当你的改变图层的速度时,图层中所有的动画的速度也会因此而改变,而且为乘积关系。
  */
info.layer.speed = 2.0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,148评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,585评论 6 30
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 3,169评论 1 23
  • 动画 - UIKit 动画原理 视觉残留效应 运动模糊 做动画的时候要达到 60FPS 时候,画面才能流畅,不然用...
    varlarzh阅读 819评论 2 10
  • 这是关于系统学习CoreAnimation的学习笔记,记录常用和重要的知识点,gitbook地址:https://...
    LX2014阅读 759评论 0 0