美文网首页
2019-11-12

2019-11-12

作者: 红色小星 | 来源:发表于2019-11-12 16:16 被阅读0次

swift UIView CALayer动画的暂停与继续

开始动画

        UIView.animate(withDuration: 2.0, animations: {                                                  self.btnTopBall.centerY = self.view.height / 2         }) { (finish) in                                                          }

暂停动画

// 将当前时间CACurrentMediaTime转换为layer上的时间, 即将parent time转换为local time                       let pauseTime = self.btnTopBall.layer.convertTime(CACurrentMediaTime(), from: nil)                       // 设置layer的timeOffset, 在继续操作也会使用到                       self.btnTopBall.layer.timeOffset = pauseTime                                                                            // local time与parent time的比例为0, 意味着local time暂停了                       self.btnTopBall.layer.speed = 0.0

继续动画

let pauseTime = self.btnTopBall.layer.timeOffset                                                                     let timeSincePause = CACurrentMediaTime() - pauseTime                 self.btnTopBall.layer.timeOffset = 0.0                                                                     self.btnTopBall.layer.beginTime = timeSincePause                             self.btnTopBall.layer.speed = 1.0

相关文章

网友评论

      本文标题:2019-11-12

      本文链接:https://www.haomeiwen.com/subject/krlqictx.html