什麼是CALayer(如在UIView的layer
屬性中所見)以及我們將在哪裏使用這樣的類?什麼是CALayer?
4
A
回答
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;
相關問題
- 1. 設置CALayer的bounds.origin是做什麼的?
- 2. 什麼的UIView和CALayer的
- 3. 確實 - [CALayer drawInContext:]做些什麼?
- 4. CALayer爲什麼不保留其內容?
- 5. 爲什麼CALayer不顯示圖像?
- 6. CALayer代表可以做什麼?
- 7. UIView和CALayer之間有什麼區別?
- 8. 界限在CALayer中意味着什麼?
- 9. CALayer的setNeedsDisplayInRect - 什麼是InRect點?或更快的圖形中drawInContext
- 10. 什麼是CALayer等同於UIView的sizeToFit方法?
- 11. 用CATransform3D旋轉和翻譯CALayer的正確順序是什麼
- 12. 什麼是Mac的相當於iOS的CALayer「willMoveToSuperview」?
- 13. 更改CALayer位置的目的是什麼
- 14. 什麼是「接收器類型'CALayer'實例消息是一個前向聲明」是什麼意思?
- 15. 是CALayer insertSublayer:atindex:破壞性的?
- 16. 如何確定CALayer是否完全被其他CALayer覆蓋?
- 17. 爲什麼CGColorRef不會更改CALayer屬性?
- 18. 爲什麼UIView動畫不會觸發CALayer的addAnimation:forKey:?
- 19. 爲什麼需要使用CALayer的presentationLayer進行命中測試?
- 20. CALayer -drawInContext和-renderInContext之間有什麼區別?
- 21. 爲什麼CALayer支持商店不在堆中?
- 22. iPhone遊戲開發時使用CALayer和UIView有什麼區別?
- 23. 爲什麼masksToBounds = YES會阻止CALayer的影子?
- 24. 爲什麼我在UIView的則hitTest未識別的CALayer感動
- 25. CALayer的display/drawRect方法究竟會發生什麼?
- 26. 爲什麼我的CALayer被我的NSView截斷?
- 27. CALayer知道我在縮放時不知道什麼
- 28. 爲什麼CALayer的移動速度比UIView的慢?
- 29. 這個CALayer設置代碼有什麼問題
- 30. Draggable CALayer
另請參閱[層有什麼用途?我能做些什麼來添加圖層,爲什麼我應該考慮圖層?](http://stackoverflow.com/questions/745096/what-are-layers-good-for-what-could-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