iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations
本節(jié)將介紹CALayer與Core Animation基礎(chǔ),找找通過(guò)Layer操作動(dòng)畫(huà)的感覺(jué),你將學(xué)到如何移動(dòng)、隱藏顯示Layer的方法
animation properties
Layer中很多動(dòng)畫(huà)屬性的使用方法與View類似,例如frame、position、opacity等,另外還提供了border、shadow等新屬性,接下來(lái)我們來(lái)看看Layer中給了我們什么可以動(dòng)畫(huà)變化的屬性
Position and size
bound
Layer的范圍position
Layer在父Layer中的的位置,可以分別修改x、y
-transform
改變中國(guó)屬性可以移動(dòng)、縮放、旋轉(zhuǎn)Layer,甚至可以加入3D動(dòng)畫(huà)
Border
borderColor
邊框顏色borderWidth
邊框?qū)挾?/p>cornerRadius
角的弧度,可以實(shí)現(xiàn)圓角
Shadow
shadowOffset
改變這個(gè)屬性可以改變陰影與Layer的遠(yuǎn)近shadowOpacity
改變這個(gè)屬性可以改變陰影的顯示shadowPath
改變Layer shadow的形狀,可以加入各種各樣的3D效果shadowRadius
改變陰影的模糊程度,在模擬物體朝向屏幕運(yùn)動(dòng)或遠(yuǎn)離屏幕的動(dòng)畫(huà)中使用較多
Contents
content
改變這個(gè)屬性可以改變Layer內(nèi)含的TIFF、PNG原始數(shù)據(jù)mask
改變這個(gè)屬性可以改變圖像上的遮蓋opacity
改變內(nèi)容的透明度
以上的屬性就已經(jīng)足夠你實(shí)現(xiàn)一些基于Layer的動(dòng)畫(huà)了,下面我們通過(guò)Demo練習(xí)一下
First Layer Animation
這次我們的Demo利用Layer Animation替換之前登錄頁(yè)面Demo中的View Animation
我們從heading開(kāi)始,在viewWillAppear及viewDidAppear方法中刪除有關(guān)代碼(對(duì)于控件初位置的設(shè)定在動(dòng)畫(huà)中實(shí)現(xiàn))
創(chuàng)建動(dòng)畫(huà)
我們?cè)谠趘iewDidAppear方法中添加動(dòng)畫(huà)
let flyRight = CABasicAnimation(keyPath: "position.x") flyRight.fromValue = -view.bounds.size.width/2 flyRight.toValue = view.bounds.size.width/2 flyRight.duration = 0.5CoreAnimation中的對(duì)象都是一些簡(jiǎn)單的數(shù)據(jù)模型,我們只需實(shí)例化并設(shè)置相應(yīng)的數(shù)據(jù)即可
一個(gè)CA實(shí)例描述了具體的Layer動(dòng)畫(huà),你可以隨時(shí)使用這個(gè)動(dòng)畫(huà)
這些動(dòng)畫(huà)實(shí)例并不急于具體的Layer,你可以在需要的時(shí)候重用代碼,每次添加動(dòng)畫(huà)時(shí)都會(huì)創(chuàng)建它的一份拷貝
對(duì)于一個(gè)CA對(duì)象,你可以很方便的通過(guò)keypath參數(shù)具體說(shuō)明動(dòng)畫(huà)的屬性
隨后我們?cè)O(shè)置了fromValue、toValue屬性調(diào)整了動(dòng)畫(huà)的開(kāi)始與結(jié)束
最后我們?cè)O(shè)置了動(dòng)畫(huà)進(jìn)行的時(shí)間
把動(dòng)畫(huà)添加到layer上
通過(guò)上面的代碼我們已經(jīng)創(chuàng)建了動(dòng)畫(huà),現(xiàn)在我們來(lái)把動(dòng)畫(huà)添加到具體的layer上
heading.layer.addAnimation(flyRight, forKey: nil)我們這里調(diào)用的addAnimation(_: forKey:)方法用于將CA對(duì)象創(chuàng)建一個(gè)拷貝并且應(yīng)用在layer上,第二個(gè)參數(shù)forKey僅僅用于動(dòng)畫(huà)的使用者,通過(guò)這個(gè)參數(shù)可以實(shí)現(xiàn)改變、停止這個(gè)動(dòng)畫(huà)等操作。
總結(jié)
以上是生活随笔為你收集整理的iOS动画编程-Layer动画[ 2 ] Getting Started with Layer Animations的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 309.Best Time to Buy
- 下一篇: 表单新特性