CALayer的認識框架
1.iOS中全部看得見的控件都須要UIView 包括UIwindow也是一個特殊的UIView性能
2.UIview對象在建立的時候 UIView內部回會去自動建立一個圖層 CALayer對象 動畫
舉個例子 就是能夠經過UIview的layer屬性去訪問他spa
3.UIview的現實過程對象
UIview須要顯示在屏幕上的時候 會調用drawRect方法進行繪圖 而且將所繪製的內容放在本身的圖層上面,繪圖完畢後,系統會講圖層拷貝到屏幕上 完成屏幕顯示 繼承
UIview自己不能顯示 是calayer完成的顯示事件
4 ,舉個例子 開發過程當中 能夠經過CALyaer對象去 很方便的調整UIView的外觀屬性開發
圓角 影音 邊框 contents須要強轉維CGImage 還能夠添加一些自定義的動畫it
5.自定義layer 能夠實現和UIview同樣的展現效果 io
咱們自定義CALayer 正常的View本身有一個的一個layer 屬性
咱們能夠經過CALayer的類方法本身去自定義個
設置了屬性後 最後別忘了 [self.view.layer addSublayer:layer]
又一個細節點值得注意的是 若是一個控件 是另一個控件的子控件 那麼控件中的layer也是另一個控件的子layer 最簡單的例子就是截屏操做的時候 爲何可以所有
6.CALyaer是QuarzCore框架中的 CGImageRef和CGCoreRef是定義在CoreGrapgics中的
前面的兩個都是跨平臺的
UIColor和UIimage是定義在的 UIKit中的 專屬於iOS的
若是你能用UIColre和UIimage
QuarzCore 不恩可以使用uUIColor和UIImage 只能使用CGColorRef和 CGImageRef
UIview比CALayer多了一個事件處理的功能 爲何?????
由於他是繼承自那個 NSObject的 不是繼承自UIResponder
CALyaer的性能高一代呢 少了處理事件的處理
通常的時候是用不着的
7.CALayer有兩個屬性 position和 anchorpoint(取值是0-1)
anchorpoint決定了哪一個點移動到 (100,100)的位置 不是默認的 左上角 00到那個位子