#####今天在處理一些問題的時候,又牽扯到了圖層的處理,然後開始發掘大腦深處的記憶,不過,O(∩_∩)O~發現自己又忘的差不多了,然後開始檢視一些關於CALayer
的資料,花費的時間不多,但是感覺這已經是我第N+N次檢視這些東西了(感覺自己好笨~),每次都會浪費時間來收索想要的東西,但也從來沒有對CALayer
有任何系統的瞭解,總是在使用的過程中,突然發現:我擦,怎麼會有這個子類;這個,我怎麼不知道有這個屬性。終於我不能忍了,就是現在,我要回歸修真模式,好好的整理一下這個~常用但又不常用~的傢伙,也作為我《iOS論文系列》的開篇之作。
###繼承關係
- NSObject
- CALayer
- AVCaptureVideoPreviewLayer(多媒體捕獲視訊預覽圖層)
- AVPlayerLayer(多媒體播放圖層)
- AVSampleBufferDisplayLayer(多媒體緩衝顯示圖層)
- AVSynchronizedLayer(多媒體同步圖層)
- CAEAGLLayer((⊙o⊙)...)
- CAEmitterLayer(粒子發射圖層)
- CAGradientLayer(梯度顯示圖層)
- CAMetalLayer(金屬圖層)
- CAReplicatorLayer(複製圖層)
- CAScrollLayer(滾動圖層)
- CAShapeLayer(形狀圖層)
- CATextLayer(文字圖層)
- CATiledLayer(瓷磚圖層)
- CATransformLayer(轉換圖層)
- CALayer
###遵守協議
- CAMediaTiming
- CVarArgType
- CustomStringConvertible
- Equatable
- Hashable
- NSCoding
- NSObjectProtocol
###引入標頭檔案
SWIFT:
import QuartzCore
OBJECTIVE-C
@import @"QuartzCore";
複製程式碼
###支援
- 支援iOS2.0以後
###簡介
CALayer主要是用來管理基於影象的內容,並允許你執行動畫在它的上面。圖層一般是用來做View(檢視)內容的容器但是也可以脫離View而直接顯示內容。一個Layer的主要工作是管理顯示你所提供的視覺內容,但是其內部有很多視覺屬性可以被設定,例如:(backgroundColor)背景色,(border)邊框,(shadow)陰影等。除了管理視覺內容,Layer還維持其在螢幕上顯示的圖形資訊(例如:(中心點位置)position,(大小)size,(形變資訊)transform),修改Layer的屬效能夠讓你開啟一個動畫,一個Layer物件可以設定動畫時長和步調(節奏),其動畫採用CAMediaTiming
協議,它定義了圖層的定時資訊。
如果一個Layer通過一個View被建立,View通常自動給自己分配Layer的代理,一般情況下,不要改變它們之間的關聯。如果你自己建立一個Layer,你可以設定一個代理(delegate)物件,並通過它來動態設定Layer的內容或執行其他的任務,一個Layer也有可能會有一個佈局管理者物件(設定LayoutManager
屬性)去分別管理子檢視的佈局。
###目錄: