IOS:drawRect在角落显示1px

时间:2012-01-29 20:10:18

标签: ios custom-controls

我在自定义UIButton中使用drawRect来绘制带有图像的边框按钮。代码如下:

- (void) drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();

//Draw a rectangle
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
CGContextSetStrokeColorWithColor(context, [[UIColor grayColor] CGColor]);
//Define a rectangle
CGRect drawrect = CGRectMake(CGRectGetMinX(rect),CGRectGetMinY(rect),rect.size.width,rect.size.height);

CGContextStrokeRect(context,drawrect);}

问题是在角上我得到了一个额外的像素(见附图)。我做错了什么?

enter image description here

感谢

1 个答案:

答案 0 :(得分:6)

您沿着像素的边缘绘制矩形,而不是沿着像素的中心绘制它。所以你的矩形只覆盖大部分像素的一半。它在角上覆盖了四分之三的像素。

要沿像素中心绘制,必须使用半整数坐标。试试这个:

CGContextStrokeRect(context, CGRectInset(rect, 0.5, 0.5));