我在自定义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);}
问题是在角上我得到了一个额外的像素(见附图)。我做错了什么?
感谢
答案 0 :(得分:6)
您沿着像素的边缘绘制矩形,而不是沿着像素的中心绘制它。所以你的矩形只覆盖大部分像素的一半。它在角上覆盖了四分之三的像素。
要沿像素中心绘制,必须使用半整数坐标。试试这个:
CGContextStrokeRect(context, CGRectInset(rect, 0.5, 0.5));