gpt4 book ai didi

ios - CALayer 未实现自定义 drawLayer :inContext: method

转载 作者:行者123 更新时间:2023-11-28 22:52:46 24 4
gpt4 key购买 nike

我看到了这个solution在研究 CALayers 时。我一直在寻找一种在具有多个子层的 UIView 中实现自定义绘图的方法。我这样命名我的子层:

layer1.name = @"Back";
layer2.name = @"Middle";
layer3.name = @"Front";

我创建了要由这些层实现的自定义方法

-(void)drawBackLayer:(CALayer *)layer inContext:(CGContextRef)ctx
-(void)drawMiddleLayer:(CALayer *)layer inContext:(CGContextRef)ctx
-(void)drawFrontLayer:(CALayer *)layer inContext:(CGContextRef)ctx

问题是这些方法没有实现,取而代之的是被 View 根层使用的drawLayer:inContext:被实现了四次。这意味着自定义层实现此方法而不是自定义方法。谁能给我解释一下为什么?

注意:我在链接中提到的解决方案是 Dave Lee 提供的代码。

最佳答案

UIView 使用的层必须是实现这些消息的自定义 CALayer。获取 UIView 子类以使用特定图层的方法是通过类方法“+(Class)layerClass”。

所以:- 子类化 UIView(或它的子类,如 UIImageView 等)- 实现layerClass方法,返回[MyCALayer类];

现在该 View 将使用您的 CALayer 子类。

关于ios - CALayer 未实现自定义 drawLayer :inContext: method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11521172/

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