我想在其中绘制一个带有白色矩形(或几个矩形)的绿色圆圈。但我无法理解,如何使用CGContext
方法。这是我的代码。首先我绘制一个圆圈并填充它,然后我想在我的圆圈内绘制其他东西。但如果我使用相同的CGContextRef
绘制内部基元,CGContextSetFillColor
会改变我的圆圈颜色。
- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(ctx, rect);
CGContextSetFillColor(ctx, CGColorGetComponents([self.color CGColor]));
CGContextFillPath(ctx);
switch (self.type)
{
case ETBRoundViewTypeBook:
{
CGRect bookRect = CGRectMake(CGRectGetMidX(rect) - 10, CGRectGetMidY(rect) - 12, 20, 24);
CGContextAddRect(ctx, bookRect);
CGContextSetFillColor(ctx, CGColorGetComponents([UIColor whiteColor].CGColor));
CGContextFillPath(ctx);
}
case ETBRoundViewTypeList:
{
break;
}
case ETBRoundViewTypeTick:
{
break;
}
default:
break;
}
}
编辑:将CGContextSetFillColor
替换为CGContextSetFillColorWithColor
即可解决问题。
答案 0 :(得分:1)
我刚试过这个并且有效。
-(void)drawRect:(CGRect)rect{
CGContextRef ctx =UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(ctx, rect);
CGContextSetFillColorWithColor(ctx, [UIColor greenColor].CGColor);
CGContextFillPath(ctx);
CGContextAddEllipseInRect(ctx, CGRectMake(30, 30, 40, 40));
CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);
CGContextFillPath(ctx);
}