How to pause and resume UIView.animateWithDuration

前端 未结 3 1678
死守一世寂寞
死守一世寂寞 2020-12-13 07:29

I have an image, I animate it with this code, in viewDidAppear:

UIView.animateWithDuration(10.5, delay:0.0, options: [], animations:{
self.myImage.transform          


        
3条回答
  •  没有蜡笔的小新
    2020-12-13 08:25

    Here is Swift 3 version of that answer + I moved those function to an extension

    extension CALayer {
        func pause() {
            let pausedTime: CFTimeInterval = self.convertTime(CACurrentMediaTime(), from: nil)
            self.speed = 0.0
            self.timeOffset = pausedTime
        }
    
        func resume() {
            let pausedTime: CFTimeInterval = self.timeOffset
            self.speed = 1.0
            self.timeOffset = 0.0
            self.beginTime = 0.0
            let timeSincePause: CFTimeInterval = self.convertTime(CACurrentMediaTime(), from: nil) - pausedTime
            self.beginTime = timeSincePause
        }
    }
    

提交回复
热议问题