0

我想在 iPad 上显示由许多绿色、红色或黑色小矩形组成的音频表。他们不需要花哨,但可能有很多。我正在寻找快速绘制它们的最佳技术。以下哪种技术更好:CALayers 或 OpenGLES 中的文本图集或其他?

感谢您在问题因过于宽泛而关闭之前的回答。不幸的是,我无法缩小问题的范围,因为我不知道要使用哪种技术。如果我知道答案,我可以使问题变得非常狭窄。

4

4 回答 4

4

另一种方法是在 CALayers 中使用纹理图集。您可以将 9 组框绘制到一个图像中(0-8 框上),然后在屏幕上创建 300 个 CALayers,所有这些都使用它作为它们的内容。在每一帧中,您切换每一层以指向它需要使用的纹理图集的一部分。我以前从来没有用 300 层做过这个,所以我不知道这是否会成为一个问题——我只用了半打左右的数字来更新每一帧,但效果非常好。有关更多信息,请参阅此博客文章:

http://supermegaultragroovy.com/2012/11/19/pragma-mark-calayer-texture-atlases/

于 2013-07-01T17:16:38.007 回答
4

最快的绘图是在自定义视图中使用 OpenGLES。

于 2013-07-01T17:03:42.303 回答
2

重复绘制的最好方法是避免在屏幕上绘制它。由于音频表往往会频繁更新,但它们的大部分区域保持不变,因为音频信号相对平滑,您应该跟踪绘制的内容,并仅绘制差异。

例如,如果您在之前的更新中绘制了一个有五十个绿色方块的信号表,而现在您需要绘制四十八个绿色方块,您应该只重新绘制与之前更新不同的两个方块。这应该可以为您节省很多石英调用。

于 2013-07-01T16:44:43.813 回答
1

将渲染推迟到绝对必要的程度,即假设您正在使用 CoreGraphics 进行绘制,使用路径,并且仅在您将所有矩形添加到路径时才描边/填充路径。

于 2013-07-01T16:40:57.420 回答