iOS動畫編程-Layer動畫[ 2 ] Getting Started with Layer Animations

本節將介紹CALayer與Core Animation基礎,找找經過Layer操做動畫的感受,你將學到如何移動、隱藏顯示Layer的方法swift

animation properties

Layer中不少動畫屬性的使用方法與View相似,例如frame、position、opacity等,另外還提供了border、shadow等新屬性,接下來咱們來看看Layer中給了咱們什麼能夠動畫變化的屬性動畫

Position and size

  • bound
    Layer的範圍code

  • position
    Layer在父Layer中的的位置,能夠分別修改x、y
    -transform
    改變中國屬性能夠移動、縮放、旋轉Layer,甚至能夠加入3D動畫orm

Border

  • borderColor
    邊框顏色對象

  • borderWidth
    邊框寬度ci

  • cornerRadius
    角的弧度,能夠實現圓角animation

Shadow

  • shadowOffset
    改變這個屬性能夠改變陰影與Layer的遠近it

  • shadowOpacity
    改變這個屬性能夠改變陰影的顯示io

  • shadowPath
    改變Layer shadow的形狀,能夠加入各類各樣的3D效果form

  • shadowRadius
    改變陰影的模糊程度,在模擬物體朝向屏幕運動或遠離屏幕的動畫中使用較多

Contents

  • content
    改變這個屬性能夠改變Layer內含的TIFF、PNG原始數據

  • mask
    改變這個屬性能夠改變圖像上的遮蓋

  • opacity
    改變內容的透明度

以上的屬性就已經足夠你實現一些基於Layer的動畫了,下面咱們經過Demo練習一下

First Layer Animation

此次咱們的Demo利用Layer Animation替換以前登陸頁面Demo中的View Animation
咱們從heading開始,在viewWillAppearviewDidAppear方法中刪除有關代碼(對於控件初位置的設定在動畫中實現)

建立動畫

咱們在在viewDidAppear方法中添加動畫

let flyRight = CABasicAnimation(keyPath: "position.x") 
    flyRight.fromValue = -view.bounds.size.width/2 
    flyRight.toValue = view.bounds.size.width/2 
    flyRight.duration = 0.5

CoreAnimation中的對象都是一些簡單的數據模型,咱們只需實例化並設置相應的數據便可
一個CA實例描述了具體的Layer動畫,你能夠隨時使用這個動畫
這些動畫實例並不急於具體的Layer,你能夠在須要的時候重用代碼,每次添加動畫時都會建立它的一份拷貝
對於一個CA對象,你能夠很方便的經過keypath參數具體說明動畫的屬性
隨後咱們設置了fromValuetoValue屬性調整了動畫的開始與結束
最後咱們設置了動畫進行的時間

把動畫添加到layer上

經過上面的代碼咱們已經建立了動畫,如今咱們來把動畫添加到具體的layer上

heading.layer.addAnimation(flyRight, forKey: nil)

咱們這裏調用的addAnimation(_: forKey:)方法用於將CA對象建立一個拷貝而且應用在layer上,第二個參數forKey僅僅用於動畫的使用者,經過這個參數能夠實現改變、中止這個動畫等操做。

相關文章
相關標籤/搜索