【发布时间】:2013-06-19 20:41:26
【问题描述】:
我有一个 UIView,我在其中使用 drawRect 方法绘制东西。我想在 UIView CALayer (self.layer) 上覆盖一个 CALayer,它会绘制我在 drawRect 中绘制的东西的一个子集。基本上,我在drawRect中画了很多圆圈,我想在叠加层上突出显示它们。我从作为 UIView 属性的模型对象获取圆的坐标。
我的第一次尝试是将子层s 添加到 UIView 层,将其委托设置为 UIView 并在需要时调用其 setNeedsDisplay 方法,但 drawLayer:InContext 被两个层(s 和 self 。层)。这不起作用:
-(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 的子层?
【问题讨论】:
标签: ios core-graphics