我想在我的应用程序中实现自由绘图。首先,我尝试了里面的代码drawLayer:inContext:
,它给了我想要的结果。
在 CALayer 中绘图:
但是当我决定实现里面的代码时drawRect:
,发生了这样的事情:
即使我在空白区域内绘制,绘图也会在外部呈现,如上所示。我使用的代码完全相同。我将它从复制粘贴drawLayer:inContext:
到drawRect:
. 我什么都没改变,为什么会这样?
编码:
CGContextSaveGState(ctx);
CGContextSetLineCap(ctx, kCGLineCapRound);
CGContextSetLineWidth(ctx, 1.0);
CGContextSetRGBStrokeColor(ctx, 1, 0, 0, 1);
CGContextBeginPath(ctx);
CGContextMoveToPoint(ctx, prevPoint.x, prevPoint.y);
for (NSValue *r in drawnPoints){
CGPoint pt = [r CGPointValue];
CGContextAddLineToPoint(ctx, pt.x, pt.y);
}
CGContextStrokePath(ctx);
CGContextRestoreGState(ctx);