我有一个 UIView,我在其中使用 drawRect 方法绘制东西。我想在 UIView CALayer (self.layer) 上覆盖一个 CALayer,它会绘制我在 drawRect 中绘制的东西的一个子集。基本上,我在drawRect中画了很多圆圈,我想在叠加层上突出显示它们。我从作为 UIView 属性的模型对象获取圆的坐标。
我的第一次尝试是将子层添加s
到 UIView 层,将其委托设置为 UIView 并setNeedsDisplay
在需要时调用其方法,但 drawLayer:InContext
由两个层(s
和 self.layer)调用。这不起作用:
-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
if (layer == s ) {
// draw stuffs for s
}
else if (layer==self.layer) {
// do nothing
}
}
导致黑色 UIView。我想s
从可以访问我的数据模型的地方以及对绘图有用的其他变量(线条的宽度......)进行绘制。我已经通过将绘图移动s
到一个单独的对象解决了这个问题,但这迫使我还要在这个对象中设置模型的指针,并复制其他参数。
所以我的问题是:在使用 drawRect 绘制其内容的 UIView 中,如何添加一个代表相同 UIView 的子层?