您好,登錄后才能下訂單哦!
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];
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。