什么是CALayer?

问题描述 投票:6回答:2

什么是CALayer(在UIView的layer属性中可见,我们将在哪里使用这样的类?

iphone objective-c cocoa macos core-animation
2个回答
20
投票

UIView是一个聚合类。它包含事件响应程序链的“内容”,用于处理视图层次结构的内容等,以及有关在显示器上绘制内容的内容。 UIView的CALayer只是有关绘制内容的内容:图像位,比例,变换,动画属性等。

可可触摸界面是通过合成图层来绘制的...视图位于窗口顶部。 CALayer是合成堆栈中的一层,位于某些层之上,并且可能位于其他层之下。 (例如,拆分视图中的表格单元格中按钮中的图像等)

如果您想对视图绘制或显示的内容做一些特殊的事情,而UIView类方法中没有提供这些东西,则可以直接进入CALayer来做一些特殊的事情:也许在视图和/或图像,屏幕外绘画,自定义动画等。

Apple CALayer Class Reference文档中还有很多解释


0
投票

UIView是基于CALayers构建的。这只是一个类,是UIViews的可视内容。只需使用NSLog打印UIView并检查,我们可以看到其内容层和框架。使用Core Graphics直接与CALayers一起使用,而UIView是UIKit元素。self.view.layer.backgroundColor = [UIColor redColor].CGColor;

© www.soinside.com 2019 - 2024. All rights reserved.