【问题标题】:What is a CALayer?什么是 CALayer?
【发布时间】:2010-09-03 04:57:03
【问题描述】:

什么是 CALayer(如 UIView 上的 layer 属性所示),我们将在哪里使用这样的类?

【问题讨论】:

标签: iphone objective-c cocoa macos core-animation


【解决方案1】:

UIView 是一个聚合类。它包含事件响应者链的“东西”、处理视图层次结构的东西等,以及关于在显示器上绘制什么的东西。 UIView 的 CALayer 只是关于绘制什么的东西:图像位、缩放、变换、动画属性等。

Cocoa Touch UI 是通过合成层来绘制的……视图在窗口顶部的视图之上。 CALayer 是合成堆栈中的一个层,它位于某些层之上,并可能位于其他层之下。 (例如,拆分视图中的视图中的表格单元格中的按钮中的图像等)

如果您想对视图绘制或显示的内容做一些特殊的事情,而这些内容在现有的 UIView 类方法中没有提供,那么可以通过直接访问 CALayer 来做一些特殊的事情:也许在视图之间交换层和/或图像、在屏幕外绘制东西、自定义动画等。

Apple CALayer Class Reference 文档中有更多解释

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 2018-01-25
      • 2010-11-13
      • 2023-03-10
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2011-12-11
      相关资源
      最近更新 更多