1

我正在尝试通过石英框架绘制和擦除线条。

但我面临一些问题。

请指教。

Q1)如果按下 UIButton,我已经做了跟随方法并执行该方法。

- (void)drawCustom {

    cgc_Context = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(cgc_Context, 5.0);
    CGContextSetStrokeColorWithColor(cgc_Context, [UIColor yellowColor].CGColor);
    CGContextMoveToPoint(cgc_Context, 0, 0);
    CGContextAddLineToPoint(cgc_Context, 200, 50);
    CGContextStrokePath(cgc_Context);
}

但我得到的结果是:

suckjuui-iMac.local QuartzTest[5008]:CGContextSetLineWidth:无效上下文 0x0 Jul 20 20:22:50

suckjuui-iMac.local QuartzTest[5008]:CGContextSetStrokeColorWithColor:无效上下文 0x0 Jul 20 20:22:50

suckjuui-iMac.local QuartzTest[5008]:CGContextMoveToPoint:无效上下文 0x0 Jul 20 20:22:50

suckjuui-iMac.local QuartzTest[5008]:CGContextAddLineToPoint:无效上下文 0x0 Jul 20 20:22:50

suckjuui-iMac.local QuartzTest[5008]:CGContextDrawPath:无效上下文 0x0

为什么会出现上述消息?

Q2) 如何擦除画线?

4

2 回答 2

2

对于第二个问题。

您不能擦除线条,因为根据 wattson12,您的绘图需要在 drawRect 中进行。您只能重新绘制图形(减去您想要擦除的内容)。

于 2012-07-20T12:32:19.537 回答
0

对于第一个问题:

如果您没有从 drawRect 内部调用 UIGraphicsGetCurrentContext,则返回 nil:

将此代码移动到自定义 UIView 子类的 drawRect 方法中

于 2012-07-20T11:40:04.067 回答