我想在 NSView 子类中做一些自定义绘图我应该从哪里开始?
问问题
1002 次
3 回答
4
正如 Jarret 所说,Apple 文档是一个很好的起点。但是,要记住一些事情:
视图使用的默认坐标系是笛卡尔坐标系,原点位于视图的左下角。大多数情况下,您希望原点位于视图的左上角,因此您可以在此处覆盖isFlipped:
方法(返回的默认实现NO
),返回YES
:
- (BOOL)isFlipped
{
return YES;
}
这会“翻转”坐标系,以便在发生垂直翻转后原点位于左上角。这可以使一些绘图位置计算更容易。
您可能想要开始的主要事情是:
- 填充基本矩形(使用
NSBezierPath
类方法fillRect:
,以及NSColor
用于设置和使用颜色的类)。 - 处理图像(使用
NSImage
类和它提供的绘图方法)。 - 路径,您可以在其中绘制线条和其他形状(使用
NSBezierPath
类)。
您还需要在某个时候查看图形上下文,并在它们上设置属性(例如当前颜色、阴影等),用于后续的绘图操作。
可能不是直接关注的问题,但只是一个旁注,在某些时候你应该看看Cocoa 的视图编程指南的优化视图绘图部分。绘图操作应该很快,有时让我感到惊讶的是,当您可以做一些基本的事情来使您的绘图 - 因此应用程序 - 更有效率时,人们对绘图的性能方面的考虑是多么的少,例如只重绘部分实际上已经改变的观点,而不是整个事情。
于 2009-12-15T21:53:53.020 回答
4
Apple 的可可绘图指南简介是最好的起点。那里有很多例子。
于 2009-12-15T21:31:54.770 回答
0
你应该从头开始。
于 2009-12-15T21:31:22.667 回答