3

我正在尝试在 Cocoa 中绘制我的一些 UI 元素,主要是按钮的图标,但是我很难获得我想要的那种精度。

我正在使用这样的超级简单代码来绘制矩形:

[[NSColor redColor] set];
[NSBezierPath strokeRect:myRect];

但我看到的是红色矩形线总是褪色。

我在这里想念什么?

4

2 回答 2

8

Cocoa 坐标实际上指定了您要绘制的像素的中心。这意味着,例如,如果您想在左下角的像素上绘制,您应该使用坐标 (0.5,0.5)。

向您的坐标添加/减去半个像素,它们应该是像素完美的。

于 2011-02-10T12:21:31.447 回答
0

您可以像这样为图形上下文禁用抗锯齿:

[[NSGraphicsContext currentContext] setShouldAntialias:NO];

或者您可以使用 NSFrameRect 而不是贝塞尔路径,这将获得您想要的精度,同时保持抗锯齿:

NSFrameRect(myRect);
于 2011-02-10T12:15:48.407 回答