这是基本的简化代码,无论我尝试过什么颜色都不会改变我单独尝试了 0、1、2,它可以工作并用正确的颜色填充路径,但在循环中颜色不会改变。
我试过: mutablepath ,保存/恢复上下文,运行干净,代码的一些排列,到目前为止没有太大的成功,它看起来非常简单,但看不到我缺少什么。
for(looper=0; looper<MAX ; looper++)
{
CGContextSetFillColorWithColor(context, [[self setMyColor:lopper] CGColor]);
[self draw_a_path:context ... more dimension args];
CGContextClosePath(context);
CGContextFillPath(context);
}
-(UIColor *) setMyColor:(int ) for_this_idx
{
UIColor *cur_color;
switch(for_this_idx)
{
case 0:
cur_color = [UIColor colorWithRed: 0xdf/255.0 green: 0x01/255.0 blue: 0x01/255.0 alpha: 1.0] ;
break;
... more cases ...
}
return cur_color;
}
-(void) draw_a_path:(CGContextRef) thisContext
... position args ...
{
... more stuff with Arcs but basically is this and each case works individually with the proper colour ....
CGContextMoveToPoint(thisContext, x_start,y_start);
CGContextAddLineToPoint(thisContext, x_start + n1), y_start + n2) );
CGContextAddLineToPoint(thisContext, x_start + n1 + p1), y_start + n2 + p2) );
CGContextAddLineToPoint(thisContext, x_start, y_start);
...
}