iOS動畫 屬性屬性解析
CABasicAnimation和CAKeyframeAnimation繼承自CAPropertyAnimation,CAPropertyAnimation繼承自CAAnimation,CAAnimation實現了CAMediaTiming協議。
CAMediaTiming協議屬性解析:
- duration:動畫的持續時間
- repeatCount:動畫的重複次數
- repeatDuration:動畫的重複時間
- removedOnCompletion:預設為YES,代表動畫執行完畢後就從圖層上移除,圖形會恢復到動畫執行前的狀態。如果想讓圖層保持顯示動畫執行後的狀態,那就設定為NO,不過還要設定fillMode為kCAFillModeForwards。
- fillMode:決定當前物件在非active時間段的行為。比如動畫開始之前,動畫結束之後。
- kCAFillModeRemoved:這個是預設值,也就是說當動畫開始前和動畫結束後,動畫對layer都沒有影響,動畫結束後,layer會恢復到之前的狀態。
- kCAFillModeForwards:當動畫結束後,layer會一直保持著動畫最後的狀態。
- kCAFillModeBackwards:在動畫開始前,你只要將動畫加入了一個layer,layer便立即進入動畫的初始狀態並等待動畫開始.你可以這樣設定測試程式碼,將一個動畫加入一個layer的時候延遲5秒執行.然後就會發現在動畫沒有開始的時候,只要動畫被加入了layer,layer便處於動畫初始狀態 。
- kCAFillModeBoth:這個其實就是上面兩個的合成.動畫加入後開始之前,layer便處於動畫初始狀態,動畫結束後layer保持動畫最後的狀態。
- beginTime:可以用來設定動畫延遲執行時間,若想延遲2s,就設定為CACurrentMediaTime() + 2, CACurrentMediaTime():圖層的當前時間。
- timeOffset:這個timeOffset可能是這幾屬性中比較難理解的一個,官方的文件也沒有講的很清楚. local time也分成兩種一種是active local time 一種是basic local time。timeOffset則是active local time的偏移量. 你將一個動畫看作一個環,timeOffset改變的其實是動畫在環內的起點,比如一個duration為5秒的動畫,將timeOffset設定為2(或者7,模5為2),那麼動畫的執行則是從原來的2秒開始到5秒,接著再0秒到2秒,完成一次動畫.
- speed:speed屬性用於設定當前物件的時間流相對於父級物件時間流的流逝速度,比如一個動畫beginTime是0,但是speed是2,那麼這個動畫的1秒處相當於父級物件時間流中的2秒處. speed越大則說明時間流逝速度越快,那動畫也就越快.比如一個speed為2的layer其所有的父輩的speed都是1,它有一個subLayer,speed也為2,那麼一個8秒的動畫在這個執行於這個subLayer只需2秒(8 / (2 * 2)).所以speed有疊加的效果。
相關文章
- 屬性動畫動畫
- IOS Objective-C屬性解析iOSObject
- Android屬性動畫詳解(一),屬性動畫基本用法Android動畫
- 屬性動畫 ValueAnimator 執行原理全解析動畫
- Android View動畫和屬性動畫簡單解析:AndroidView動畫
- SVG restart動畫屬性SVGREST動畫
- SVG restart 動畫屬性SVGREST動畫
- SVG 動畫 fill 屬性SVG動畫
- android屬性動畫Android動畫
- Android 動畫之屬性動畫Android動畫
- 屬性動畫與差值器動畫
- Android 屬性動畫(二)Android動畫
- android動畫——屬性動畫(Property Animation)Android動畫
- Android屬性動畫:動畫流控制Android動畫
- CSS動畫屬性關鍵幀keyframes全解析CSS動畫
- iOS UITableView 修改屬性iOSUIView
- iOS 富文字屬性iOS
- Android原始碼解析(一)動畫篇-- Animator屬性動畫系統Android原始碼動畫
- CMake 屬性之全域性屬性
- Android 屬性動畫實戰Android動畫
- 屬性動畫:如何自定義View動畫View
- 如何理解Android屬性動畫Android動畫
- CSS3的動畫屬性CSSS3動畫
- 初識屬性動畫——使用Animator建立動畫動畫
- 屬性動畫:基本使用和組合動畫動畫
- 獲取物件屬性型別、屬性名稱、屬性值的研究:反射和JEXL解析引擎物件型別反射
- Swift iOS : @escaping 屬性SwiftiOSAPI
- defer 屬性和 async 屬性
- 【Android 動畫】動畫詳解之屬性動畫(三)Android動畫
- 【Android 動畫】動畫詳解之屬性動畫(五)Android動畫
- 屬性動畫 58同城資料載入動畫動畫
- SVG accumulate和additive動畫屬性SVG動畫
- 屬性動畫-波紋擴散WaveView動畫View
- 檢視屬性+物件動畫元件ViewPropertyObjectAnimator物件動畫元件ViewObject
- Android開發之屬性動畫Android動畫
- Android 屬性動畫Property Animation(中)Android動畫
- Android 屬性動畫Property Animation(下)Android動畫
- Android學習之 屬性動畫Android動畫