一個簡單關於動畫的暫停和開始操作的處理

// 暫停動畫
    /*
     1.取出當前的動畫的時間點,就是要暫停的時間點
     2.將動畫的運行速度設置爲0,動畫默認的運行速度是1.0
     設置動畫的時間偏移量,制定時間偏移量的目的就是讓動畫定格在該時間點*/
    
    CFTimeInterval pauseTime=[self.view.layer convertTime:CACurrentMediaTime() fromLayer:nil];
    [self.view.layer setTimeOffset:pauseTime];
    [self.view.layer setSpeed:0];
    
    
    // 動畫回覆
    /*
     1.將動畫的時間偏移量爲暫停的時間點
     2.根據媒體時間計算出準確的啓動動畫時間 對之前暫停動畫時間進行修正*/
    pauseTime=self.view.layer.timeOffset;
    CFTimeInterval beginTime=CACurrentMediaTime()-pauseTime;
    [self.view.layer setTimeOffset:0]; // 清空偏移時間
    [self.view.layer setBeginTime:beginTime];
    [self.view.layer setSpeed:1.0];
    
    if(self.view.layer.speed ==0){ // 如果暫停,處理動畫
        
    }else{
        
    }
發佈了71 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章