2

我想在 NSView 子类中做一些自定义绘图我应该从哪里开始?

4

3 回答 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 回答