CALayer 緒論(iOS論文系列)

SSBun發表於2017-12-13

#####今天在處理一些問題的時候,又牽扯到了圖層的處理,然後開始發掘大腦深處的記憶,不過,O(∩_∩)O~發現自己又忘的差不多了,然後開始檢視一些關於CALayer的資料,花費的時間不多,但是感覺這已經是我第N+N次檢視這些東西了(感覺自己好笨~),每次都會浪費時間來收索想要的東西,但也從來沒有對CALayer有任何系統的瞭解,總是在使用的過程中,突然發現:我擦,怎麼會有這個子類;這個,我怎麼不知道有這個屬性。終於我不能忍了,就是現在,我要回歸修真模式,好好的整理一下這個~常用但又不常用~的傢伙,也作為我《iOS論文系列》的開篇之作。

###繼承關係

  • NSObject
    • CALayer
      1. AVCaptureVideoPreviewLayer(多媒體捕獲視訊預覽圖層)
      2. AVPlayerLayer(多媒體播放圖層)
      3. AVSampleBufferDisplayLayer(多媒體緩衝顯示圖層)
      4. AVSynchronizedLayer(多媒體同步圖層)
      5. CAEAGLLayer((⊙o⊙)...)
      6. CAEmitterLayer(粒子發射圖層)
      7. CAGradientLayer(梯度顯示圖層)
      8. CAMetalLayer(金屬圖層)
      9. CAReplicatorLayer(複製圖層)
      10. CAScrollLayer(滾動圖層)
      11. CAShapeLayer(形狀圖層)
      12. CATextLayer(文字圖層)
      13. CATiledLayer(瓷磚圖層)
      14. CATransformLayer(轉換圖層)

###遵守協議

  • 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屬性)去分別管理子檢視的佈局。

###目錄: