gpt4 book ai didi

iphone - 传递给drawLayer的上下文是什么:inContext:?

转载 作者:行者123 更新时间:2023-12-03 19:15:11 25 4
gpt4 key购买 nike

在iPhone开发中,我想在图层中绘制上下文。那么问题来了:

传递给drawLayer:inContext:的上下文到底是什么?是图层内容的上下文还是 UIview 的上下文?

如果这是 UIView 的上下文,那么它是哪个 UIView?

提前致谢。

最佳答案

传入的上下文属于该委托(delegate)方法返回的 CALayer。通常,这是一个显示上下文,但如果使用 -renderInContext: 手动绘制图层,它也可以是图像或 PDF 上下文。

CALayers 可以单独存在,也可以用作 UIView 的支持。所有 UIView 背后都有一个层,用于处理该 View 内容的实际显示。在 View 中绘制实际上是在其图层上进行绘制,同样,在支持 UIView 的 CALayer 中进行绘制看起来也会绘制到 View 上。

正如我所说,您可以创建作为单独实体存在的 CALayers,并将它们作为子图层添加到现有图层中以进行显示。在某些时候,需要有一个 UIView 在其支持层中托管所有这些子层,以便在 iPhone 屏幕上看到这些层。

请注意,根据UIView class reference :

Since the view is the layer’s delegate, you should never set the view as a delegate of another CALayer object. Additionally, you should never change the delegate of this layer.

这意味着对于 UIView 的层,您几乎在所有情况下都会在 UIView 中处理委托(delegate)方法,因此传递到该方法的层将是 View 的层。子层可以将任何东西作为其委托(delegate),因为它们不附加到特定 View 。

关于iphone - 传递给drawLayer的上下文是什么:inContext:?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2340759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com