我正在尝试在Cocoa中绘制一些我的UI元素,主要是按钮的图标,但是我很难获得我想要的那种精度。
我正在使用这样的超级简单代码来绘制矩形:
[[NSColor redColor] set];
[NSBezierPath strokeRect:myRect];
但我所看到的是红色矩形线总是褪色。
我在这里缺少什么?
答案 0 :(得分:8)
Cocoa坐标实际上指定了您想要绘制的像素的中心。这意味着,例如,如果要在左下角像素上绘制,则应使用坐标(0.5,0.5)。
在坐标上添加/减去半个像素,它们应该是像素完美的。
答案 1 :(得分:0)
您可以为图形上下文禁用抗锯齿,如下所示:
[[NSGraphicsContext currentContext] setShouldAntialias:NO];
或者您可以使用NSFrameRect而不是bezier路径,这样可以获得所需的精度,同时保持抗锯齿效果:
NSFrameRect(myRect);