我想在iPad上显示音频仪表,由许多绿色,红色或黑色的小矩形组成。他们不需要花哨,但可能会有很多人。我正在寻找最好的技术来快速绘制它们。以下哪种技术更好: CALayers文本地图集、OpenGLES文本地图集还是其他?
感谢您在问题因过于宽泛而关闭之前的回答。不幸的是,我不能缩小问题的范围,因为我不知道使用哪种技术。如果我知道答案,我就可以把问题缩小到很小的范围。
发布于 2013-07-02 01:03:42
最快的绘图方式是在自定义视图中使用OpenGLES。
发布于 2013-07-02 01:16:38
另一种方法是在CALayers中使用纹理贴图集。你可以把9组盒子画成一个单独的图像(0-8个盒子),然后在屏幕上创建300个CALayers,所有这些都作为它们的内容。在每一帧中,切换每个图层以指向它需要使用的纹理贴图集的部分。我以前从来没有用300层这样做过,所以我不知道这会不会成为问题-我只用了六个左右的数字来更新每一帧,但效果真的很好。有关更多信息,请参阅此博客文章:
http://supermegaultragroovy.com/2012/11/19/pragma-mark-calayer-texture-atlases/
发布于 2013-07-02 00:44:44
重复绘制的最好方法是避免绘制已经在屏幕上的内容。由于音频仪表倾向于频繁更新,但它们的大部分区域保持不变,因为音频信号相对平滑,所以您应该跟踪绘制的内容,并仅绘制差异。
例如,如果在上一次更新中绘制了一个带有50个绿色方块的信号表,现在需要绘制48个绿色方块,则应仅重画与上一次更新不同的两个方块。这将为您节省大量的quartz调用。
https://stackoverflow.com/questions/17409368
复制相似问题