iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程
- iOS開發CoreAnimation解讀之一——初識CoreAnimation核心動畫編程
- 一、引言
- 二、初識CoreAnimation
- 三、錨點對幾何屬性的影響
- 四、Layer與View之間的關系
iOS開發CoreAnimation解讀之一——初識CoreAnimation核心動畫編程
一、引言
????????眾所周知,絢麗動畫效果是iOS系統的一大特點,通過UIView層封裝的動畫,基本已經可以滿足我們應用開發的所有需求,但若需要更加自由的控制動畫的展示,我們就需要使用CoreAnimation框架中的一些類與方法。這里先附上前幾篇與動畫相關的博客地址,這一系列,我們抽出其中的CoreAnimation框架來詳細解讀。
UIViewAnimation動畫的使用:http://my.oschina.net/u/2340880/blog/484457?
UIView動畫執行的另一種方式:http://my.oschina.net/u/2340880/blog/484538
UIView轉場動畫:http://my.oschina.net/u/2340880/blog/484669
CoreAnimation隱式動畫的應用:http://my.oschina.net/u/2340880/blog/484793
粒子效果的使用:http://my.oschina.net/u/2340880/blog/485095
二、初識CoreAnimation
????????CoreAnimation框架是基于OpenGL與CoreGraphics圖像處理框架的一個跨平臺的動畫框架。簡單來說,它使幫助我們將圖像讀取成位圖,通過硬件的處理,實現動畫效果。文檔中的一張圖片十分形象的描述了CoreAnimation與UIKit框架的關系:
在CoreAnimation中,大部分的動畫效果都是通過Layer層來實現的,通過CALayer,我們可以組織復雜的層級結構。
????????在CoreAnimation中,大多數的動畫效果是添加在圖層屬性的變化上,例如,改變圖層的位置,大小,顏色,圓角半徑等。Layer層并不決定視圖的展現,它只是存儲了視圖的幾何屬性狀態。
三、錨點對幾何屬性的影響
????????關于Layer層,我們需要了解一個有關錨點的概念,錨點決定了圖層的繪制位置以及動畫展示時其參照的點,錨點的取值范圍為0-1,錨點有兩個地方在應用中會有很大影響:
1.layer層的position參照點始終和錨點重合
通過position決定了layer所在的位置,在Layer中,雖然也有frame這樣的屬性,但我們很少使用,一般我們會使用bounds和position確定Layer層的大小和位置。
2.錨點決定進行動作的參照點
例如一個旋轉動作,錨點決定了層旋轉的中心點,對于放大縮小的動作,錨點決定了放大或者縮小參照的中心點。
可以來看下邊一組圖:
?
上面兩個矩形,frame和bounds都是一樣的,第一個矩形的錨點位置為(0.5,0.5),第二個為(0,0),
因此,兩個矩形的position點是不同的,第一個是(100,100),第二個是(40,60)。再看當產生動作時錨點的影響:
?
現在就很好理解了,錨點的不同直接影響了動作產生的參照點。
通過CALayer的如下屬性,我們可以設置錨點,注意x,y的取值范圍都是0~1,代表所占寬度和高度的比例:
?| 1 | @property?CGPoint?anchorPoint; |
四、Layer與View之間的關系
????????Layer是專門用于輔助我們繪制圖像的層,它使支持三維坐標系的繪制的,通過每個坐標點與轉換矩陣的運算,來決定最后繪制的狀態,并且,Layer可以更高幀率的繪制動畫效果。然而Layer與View依然有很大不同,首先,我們不可能只通過Layer來開發應用程序,Layer并沒有接收事件和處理用戶交互的能力,這些依然需要View來完成,每一個View中,都有一個Layer的屬性來輔助進行圖形的繪制。并且Layer是可以層級嵌套的,開發中,我們可以根據需求靈活選擇。
轉載于:https://www.cnblogs.com/Free-Thinker/p/5117622.html
總結
以上是生活随笔為你收集整理的iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10怎么把此计算机弄到桌面上 如何
- 下一篇: 为什么拉粑粑是绿色的?