我有关于在石英框架中绘制和擦除线条的简单问题

时间:2012-07-20 11:35:29

标签: objective-c quartz-graphics quartz-2d

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

但我面临一些问题。

请建议。

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   7月20日20:22:50

     

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

为什么消息会像上面那样出现?

Q2)如何删除绘制的线条?

2 个答案:

答案 0 :(得分:2)

关于第二个问题。

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

答案 1 :(得分:0)

第一个问题:

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

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