以下是一段代码,每次调用drawMulticolorLine时会绘制一条多色线。
void drawMulticolorLine
{
CGContextBeginPath(secondaryContext);
CGContextMoveToPoint(secondaryContext, h, v);
for( int i = 1; i < lineWidth; ++ )
{
SetStrokeColor(i);
CGContextAddLineToPoint(secondaryContext, h+i, v);
CGContextDrawPath(secondaryContext, kCGPathFillStroke);
CGContextMoveToPoint(secondaryContext, h+i, v);
}
}
//a function that sets a different color for each i
void SetStrokeColor(int i)
{
CGContextSetRGBStrokeColor(secondaryContext,…
}
上述代码可以工作,但如果在实际应用中使用它,性能会受到影响。因此,我尝试通过下面的代码来提高绘图性能。
void drawMulticolorLine
{
CGContextBeginPath(secondaryContext);
CGContextMoveToPoint(secondaryContext, h, v);
for( int i = 1; i < lineWidth; ++ )
{
SetStrokeColor(i);
CGContextAddLineToPoint(secondaryContext, h+i, v);
}
CGContextDrawPath(secondaryContext, kCGPathFillStroke);
}
//a function that sets a different color for each i
void SetStrokeColor(int i)
{
CGContextSetRGBStrokeColor(secondaryContext,…
}
这段代码在线条颜色始终相同时性能良好。
我的问题是,一旦调用CGContextDrawPath,整条线就会用最后一个CGContextSetRGBStrokeColor的颜色绘制。
有没有办法让路径保持添加的每个线段的颜色?
非常感谢任何帮助。
祝好, bzt