IOS 中動畫的暫停與繼續播放的詳解
在使用動畫控制UI的時候,可能會碰到通過手勢或其他方式要進行暫停正在進行中的動畫,然后再繼續。如手指按下時,暫停動畫,手指離開時繼續動畫。
實現原理主要是通過UI的layer進行相關的控制。
暫停動畫:
- (void)pauselayer:(CALayer *)layer {   CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];   layer.speed = 0.0;   layer.timeOffset = pausedTime; } 繼續動畫:
- (void)playlayer:(CALayer *)layer {   CFTimeInterval pausedTime = [layer timeOffset];   layer.speed = 1.0;   layer.timeOffset = 0.0;   layer.beginTime = 0.0;   CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;   layer.beginTime = timeSincePause; } 使用示例:
// 暫停 [self pauselayer:self.label01.layer]; // 繼續 [self playlayer:self.label01.layer];
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答