iOS Core Animation(七)- 圖層時間

CAMediaTiming協(xié)議
  • CAMediaTiming協(xié)議定義了在一段動畫內(nèi)用來控制逝去時間的屬性的集合。
  • durationrepeatCount是CAMidiaTiming的屬性,默認(rèn)為0.25秒一次。
  • speed,是時間的倍數(shù),假定一個duration為1的動畫,如果speed為2,那么實際上0.5s就完成了動畫
  • beginTime指定動畫開始之前的延遲時間,設(shè)置為延遲1s,例:CACurrentMediaTime()+1
  • timeOffset是將動畫快進(jìn)到某一點,改變動畫過程中的起始點
  • fillMode,需要將removedOnCompletion設(shè)置為NO
    kCAFillModeRemoved 這個是默認(rèn)值,也就是說當(dāng)動畫開始前和動畫結(jié)束后,動畫對layer都沒有影響,動畫結(jié)束后,layer會恢復(fù)到之前的狀態(tài)
    kCAFillModeForwards 當(dāng)動畫結(jié)束后,layer會一直保持著動畫最后的狀態(tài)
    kCAFillModeBackwards 這個和kCAFillModeForwards是相對的,就是在動畫開始前,你只要將動畫加入了一個layer,layer便立即進(jìn)入動畫的初始狀態(tài)并等待動畫開始.你可以這樣設(shè)定測試代碼,將一個動畫加入一個layer的時候延遲5秒執(zhí)行.然后就會發(fā)現(xiàn)在動畫沒有開始的時候,只要動畫被加入了layer,layer便處于動畫初始狀態(tài)
    kCAFillModeBoth 理解了上面兩個,這個就很好理解了,這個其實就是上面兩個的合成.動畫加入后開始之前,layer便處于動畫初始狀態(tài),動畫結(jié)束后layer保持動畫最后的狀態(tài).
全局時間和本地時間

CoreAnimation有一個全局時間的概念,即馬赫時間

  • CACurrentMediaTime訪問馬赫時間。它返回了設(shè)備自上次啟動后的秒數(shù)
  • 每個CALayer和CAAnimation實例都有自己本地時間的概念,是根據(jù)beginTime、timeOffset和speed屬性計算,類似于相對坐標(biāo)轉(zhuǎn)換,CALayer也提供了方法轉(zhuǎn)換不同圖層的本地時間:
 - (CFTimeInterval)convertTime:(CFTimeInterval)t fromLayer:(nullable CALayer *)l;
 - (CFTimeInterval)convertTime:(CFTimeInterval)t toLayer:(nullable CALayer *)l;
暫停,倒回和快進(jìn)
  • 設(shè)置圖層的speed為0,暫停
  • 負(fù)數(shù) , 倒回
  • 大于1,快進(jìn)
    想要加速所有視圖動畫self.window.layer.speed = 100;
手動控制動畫

設(shè)置圖層的speed為0,可以禁用動畫的自動播放
使用timeOffset調(diào)整動畫開始在整個動畫過程中的時間點
對于一個復(fù)雜的動畫,或者有多個圖層的動畫組,相對于實時計算圖層的屬性而言,這種方法會更加簡單

上一篇:iOS Core Animation(六)
下一篇:iOS Core Animation(八)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 書寫的很好,翻譯的也棒!感謝譯者,感謝感謝! iOS-Core-Animation-Advanced-Techni...
    錢噓噓閱讀 2,439評論 0 6
  • 本文轉(zhuǎn)載自:http://www.cocoachina.com/ios/20150105/10829.html 為...
    idiot_lin閱讀 275評論 0 1
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,693評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,270評論 5 13
  • 歲月如梭。轉(zhuǎn)眼,父親已年過半百。 時光掩飾不住父親頭發(fā)里日益增添的銀絲,臉頰被歲月洗禮的滄桑。但在我...
    45c5aa7dfff6閱讀 394評論 0 1

友情鏈接更多精彩內(nèi)容