UIPercentDrivenInteractiveTransition
是iOS 7中可用的轉換。是否有可能在iOS 7之前實現UIPercentDrivenInteractiveTransition
?iOS 7之前的百分比動畫
例如,在iOS 6中使用CAAnimation
和UIPanGestureRecognizer
時,我可以做同樣的動畫更新百分比嗎?
更新: 我可以按照panGesture來更新動畫的百分比,我的手指後,完成整個動畫:
CFTimeInterval pausedTime = [self.transitionView.layer timeOffset];
self.transitionView.layer.speed = 1.0;
self.transitionView.layer.timeOffset = 0.0;
self.transitionView.layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [self.transitionView.layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
self.transitionView.layer.beginTime = timeSincePause;
但是,如果我想取消動畫,我應該怎麼辦? 我的想法是將autoreverses
設置爲是,並根據我的預期計算timeOffset
。例如,動畫持續時間爲1秒,總時間爲2秒,如果我想在timeOffset爲0.5時反轉動畫,則相反的進度狀態爲1.5。這是我的代碼,它不工作:
self.animation.autoreverses = YES;
self.transitionView.layer.timeOffset = 2 - percent; // duration is 1s, percent is current time offset
CFTimeInterval pausedTime = [self.transitionView.layer timeOffset];
self.transitionView.layer.speed = 1.0;
self.transitionView.layer.timeOffset = 0.0;
self.transitionView.layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [self.transitionView.layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
self.transitionView.layer.beginTime = timeSincePause;
是的,我正在考慮timeOffset是關鍵點,我會檢查你的例子。非常感謝! – codiction
我更新了我的問題,你有任何想法如何取消動畫? – codiction
@codiction您可以隨時刪除動畫,並將當前表示層值的另一個動畫添加回原始值。您不必與此動畫交互,因此請記住在取消手動動畫和添加回歸動畫之間將圖層的速度設置回「1.0」。 –