iOS 动画五:Keyframe Animations

  • 时间:2018-07-09 22:14 作者:_浅墨_ 来源:_浅墨_ 阅读:525
  • 扫一扫,手机访问
摘要:keyFrame为了实现这个效果,能这样写:UIView.animate(withDuration: 0.5, animations: { view.center.x += 200.0 }, completion: { _ in UIView.animate(withDurati
keyFrame

为了实现这个效果,能这样写:

UIView.animate(withDuration: 0.5, animations: {      view.center.x += 200.0 }, completion: { _ in     UIView.animate(withDuration: 0.5,animations: {        view.center.y += 100.0}, completion: { _ in       UIView.animate(withDuration: 0.5, animations: {             view.center.x -= 200.0       }, completion: { _ in            UIView.animate(withDuration: 0.5, animations: {           view.center.y -= 100.0        })      })})})

这样写太麻烦了不是,有没更好的方法,当然有了,就是 Keyframe Animations 了。

我们能把飞机起飞的过程分为几个过程,前一阶段,飞机在跑道上加速;第二阶段,飞机向上倾斜爬升;第三阶段,飞机继续爬升,这次速率更快;第四阶段,动画的后 10% 部分,飞机飞出我们的视线,就像它飞进了云层中。

整体动画像上图那样。

现在用 Keyframe Animations 实现我们需要的效果,上代码:

func planeDepart() {    let originalCenter = planeImage.center   UIView.animateKeyframes(withDuration: 1.5, delay: 0.0, animations: {      //  add keyframes      UIView.addKeyframe(withRelativeStartTime: 0.0, relativeDuration: 0.25, animations: {             self.planeImage.center.x += 80.0           self.planeImage.center.y -= 10.0 } )     }, completion: nil )     UIView.addKeyframe(withRelativeStartTime: 0.1, relativeDuration: 0.4) {        self.planeImage.transform = CGAffineTransform(rotationAngle: -.pi / 8)      }     UIView.addKeyframe(withRelativeStartTime: 0.25, relativeDuration: 0.25) {        self.planeImage.center.x += 100.0                self.planeImage.center.y -= 50.0            self.planeImage.alpha = 0.0      }}

UIView.addKeyframe 发布方法中的参数意义,withRelativeStartTime: 0.1, relativeDuration: 0.4,第一个参数 0.1 代表从总动画时间的 10% 开始执行,第二个参数代表动画执行总时间。

效果示用意如下:


relative times

附:keyframe animations demo 下载

2018.06.25
上海 虹桥

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|软件环境】梦幻仙域游戏攻略(2023-12-19 10:02)
【系统环境|软件环境】梦幻仙域游戏攻略(2023-12-19 10:02)
【系统环境|】卡帕部落揭秘潮玩新宠,探究玩法(2023-12-14 09:45)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】如何开发搭建卡帕部落模式源码(2023-12-12 10:44)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
手机二维码手机访问领取大礼包
返回顶部