这里不是图形程序员,所以我试图在此不知所措。我正在尝试绘制9个填充的圆圈,每个圆圈具有不同的颜色,每个圆圈带有白色边框。 UIView的框架是CGRectMake(0,0,60,60)。见所附图片。
问题是我在每边的边框上都出现了“平坦的 Blob ”。以下是我的代码(来自UIView子类):
- (void)drawRect:(CGRect)rect
{
CGRect borderRect = CGRectMake(0.0, 0.0, 60.0, 60.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
CGContextSetRGBFillColor(context, colorRed, colorGreen, colorBlue, 1.0);
CGContextSetLineWidth(context, 2.0);
CGContextFillEllipseInRect (context, borderRect);
CGContextStrokeEllipseInRect(context, borderRect);
CGContextFillPath(context);
}
如果在drawRect中更改为CGRectMake(0,0,56,56),则仅在顶部和左侧获得平坦点,而底部和右侧则看起来不错。
谁能建议我该如何解决?在我看来,UIView限制了边框,但是对此我不太了解,我真的不知道如何解决。
预先感谢您对图形专家的任何建议。
最佳答案
我喜欢@AaronGolden的答案,只想补充一下:
CGRect borderRect = CGRectInset(rect, 2, 2);
或更好:
CGFloat lineWidth = 2;
CGRect borderRect = CGRectInset(rect, lineWidth * 0.5, lineWidth * 0.5);