2010-09-03 73 views
4

什麼是CALayer(如在UIView的layer屬性中所見)以及我們將在哪裏使用這樣的類?什麼是CALayer?

+1

另請參閱[層有什麼用途?我能做些什麼來添加圖層,爲什麼我應該考慮圖層?](http://stackoverflow.com/questions/745096/what-are-layers-good-for-what-c​​ould-i-do-with -adding-an-layer-and-why-should-i),[何時在Mac/iPhone上使用CALayer?](http://stackoverflow.com/questions/1447598/when-to-use-calayer-on -the-mac-iphone)和[CALayer的目的?](http://stackoverflow.com/questions/2962768/purpose-of-calayer) – 2010-09-04 13:58:03

回答

15

UIView是一個聚合類。它包含事件響應鏈的「東西」,處理視圖層次結構的東西等,以及關於在顯示器上繪製什麼的東西。 UIView的CALayer只是關於如何繪製的內容:圖像位,縮放,變換,動畫屬性等。

Cocoa Touch UI是通過合成圖層一個窗口的頂部。 CALayer是組合堆棧中的一個層,它位於某些圖層的頂部,可能位於其他圖層的下方。 (例如,分割視圖中的視圖中的表格單元格中的按鈕中的圖像等)

如果您想對視圖繪製或顯示的內容做一些特殊的處理,那麼UIView類中不提供方法,直接進入CALayer可能會做一些特殊的事情:可能在視圖和/或圖像之間交換圖層,在屏幕外繪製東西,定製動畫等。

Apple還提供了更多更多解釋CALayer Class Reference文件

0

UIView建立在CALayers.That上,它只是一個UIViews的視覺內容。只需使用NSLog打印UIView並檢查,我們就可以看到它的內容層和框架。 使用Core Graphics直接使用CALayers,而UIView是UIKit元素。 self.view.layer.backgroundColor = [UIColor redColor].CGColor;

相關問題