我在 iPhone 应用程序中使用 CGContext 时遇到一些问题。我试图用不同的颜色绘制几条线,但所有线最终总是具有最后使用的颜色。我尝试了几种方法,但并不幸运。
我建立了一个小型示例项目来处理这个问题。这是我的代码,我在drawRect方法中使用。我正在尝试画一条红线和一条蓝线:
- (void)drawRect:(CGRect)rect{
NSLog(@"drawrect!");
CGContextRef bluecontext = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(bluecontext, 2.0);
CGContextSetStrokeColorWithColor(bluecontext, [UIColor blueColor].CGColor);
CGContextMoveToPoint(bluecontext, 1, 1);
CGContextAddLineToPoint(bluecontext, 100, 100);
CGContextSetStrokeColorWithColor(bluecontext, [UIColor redColor].CGColor);
CGContextAddLineToPoint(bluecontext, 200, 100);
CGContextStrokePath(bluecontext);
}
感谢您的帮助
最佳答案
在第二次设置描边颜色之前插入此代码:
CGContextStrokePath(bluecontext);
CGContextBeginPath(bluecontext);
所有 AddLine 和 AddOther 调用都在构建路径。路径是通过像 StrokePath 这样的调用使用最近设置的颜色和其他属性来绘制的。您正在尝试绘制两条单独的路径,因此必须为每条路径调用 Begin 和 Stroke。当你开始绘画时,Begin 有点隐含,尽管你自己调用它并没有什么坏处。绘制的基本流程是:
CGContextBeginPath(bluecontext); // clears any previous path
// add lines, curves, rectangles, etc...
CGContextStrokePath(bluecontext); // renders the path
关于iPhone CGContext : drawing two lines with two different colors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3041776/