在下面,您会看到每次调用 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