当我有一个 UIBezier 并使用 drawRect 在视图上绘制它时,我看到贝塞尔曲线是一种易变的,我的意思是,它真的没有在任何地方绘制。相反,它就像是写在一种与我在该视图中看到的内容相对应的缓冲区中。我的意思是,如果我使用 [self setNeedsDisplay] 再次调用 drawRect ,贝塞尔曲线就消失了,我可以写其他东西。
另一方面,如果我在 CGContext 上使用
CGContextStrokePath(ctx);
我真的在那个上下文中写了一行,没有办法删除它,如果我再次调用相同的方法,它将覆盖现在已经绘制了一条线的上下文。
但是当我使用 UIBezier 命令在 CGContext 上写入时会发生什么?
我的意思是,如果我做类似的事情
UIGraphicsPushContext(ctx);
CGContextSaveGState(ctx);
CGContextTranslateCTM(ctx, 0, height);
CGContextScaleCTM(ctx, 1.0, -1.0);
[myBezier stroke];
CGContextRestoreGState(ctx);
UIGraphicsPopContext();
此行是永久写入 ctx 还是像以前一样易变?文档不包含有关它的信息,并且一如既往地含糊不清。
谢谢