CoreAnimation動(dòng)畫(huà)

iOSApp基本的動(dòng)畫(huà)就是移動(dòng),旋轉(zhuǎn),縮放 這些,UIView的分類UIViewKeyframeAnimations已經(jīng)封裝了一些常用的,但是如果要想自己定制動(dòng)畫(huà)還需要運(yùn)用動(dòng)畫(huà)的框架

CoreAnimation

UIView封裝了CALayer,當(dāng)我們要設(shè)置邊框,圓角的時(shí)候通常會(huì)用到這個(gè)layer, 其實(shí)UIView就是對(duì)CALayer進(jìn)行了封裝,并添加了觸摸事件的處理,也就是說(shuō)所有繼承于UIView的類可見(jiàn)的其實(shí)都是CALayer, 做動(dòng)畫(huà)的時(shí)候也是對(duì)UIView上的layer操作的

CoreAnimation類間關(guān)系

看任何一個(gè)框架先了解了基本結(jié)構(gòu)之后再去看細(xì)節(jié)會(huì)比較清晰, CAAnimation是核心動(dòng)畫(huà)的基類,實(shí)現(xiàn)了CAMediaTiming協(xié)議,它有三個(gè)子類CAAnimationGroup動(dòng)畫(huà)組,CAPropertyAnimation屬性動(dòng)畫(huà),CATransition轉(zhuǎn)場(chǎng)動(dòng)畫(huà),基本的動(dòng)畫(huà)要以通過(guò)CAPropertyAnimation實(shí)現(xiàn),復(fù)雜些的可以加到動(dòng)畫(huà)組CAAnimationGroup當(dāng)中去

案例

多個(gè)動(dòng)畫(huà)套入到動(dòng)畫(huà)組

上圖中的動(dòng)畫(huà)是由多個(gè)border,transform.scale,cornerRadius,path等組成的較為復(fù)雜動(dòng)畫(huà),動(dòng)畫(huà)中可以看到是由快到慢然后再回旋到初使位置,這里有個(gè)時(shí)間函數(shù)CAMediaTimingFunction來(lái)控制動(dòng)畫(huà)的速度,duration動(dòng)畫(huà)時(shí)間

添加動(dòng)畫(huà)到組中

至于CAAnimation的各種屬性就要自己去多擼代碼試, 這里說(shuō)個(gè)值得注意的點(diǎn), [CABasicAnimation animationWithKeyPath:@"borderColor"], keyPath 一般可能不知道要怎么寫(xiě),寫(xiě)什么, 因?yàn)閯?dòng)畫(huà)是對(duì)CALayer操作的,去CALayer的API中查一下Animatable 可動(dòng)畫(huà)的屬性即可

代碼

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

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

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