我目前的计划是通过子类化 NSView 来绘制矩形,但这对于我正在尝试做的事情来说似乎是一种非常低效的方式,即绘制一堆固定的、不重叠的矩形,它们会不时改变颜色。有没有更好的办法?谢谢。
问问题
335 次
3 回答
1
您可以尝试使用CALayer
s,有点像这样:http ://theocacao.com/document.page/555 。
于 2009-04-17T23:36:27.170 回答
1
如果它们都是相同的颜色或图像,您可能会发现单个 CGLayer 更有效。该 API 的目的是多次绘制相同的东西。
另一方面,如果矩形独立移动或者上面有不同的颜色或图像,Core Animation 绝对是要走的路。
于 2009-04-18T00:26:55.490 回答
0
对于游戏来说,Core Animation 将是一项很棒的技术,但如果你暂时想坚持使用 NSView,你可以创建一个类似于 NSCell 的类,游戏板视图使用它来实现定位和绘图。这与许多 Cocoa 控件类的工作方式相似,后者使用单个单元格(具有不同的值)在视图中绘制多个项目。
请记住,使用单独的 NSView 对象可能已经足够快了,但是无论速度差异如何,此策略都允许您以有意义的方式分离逻辑。
于 2009-04-18T19:22:19.003 回答