在没有CATiledLayer的Scrollview容器中渲染大网格?

时间:2012-08-26 18:40:27

标签: ios grid scrollview catiledlayer

我正在寻找有关如何拥有相当大的滚动视图(比如8192x8192)的任何建议,这实际上是一个网格,它有大约5-100个按钮放在其中的子视图。

蛮力方法耗尽内存,因为CALayer似乎正在为scrollview内容的大小分配位图(使用缩放时内存问题尤为突出)

我接下来将CATiledLayer添加到它,这解决了内存问题,但是对网格有一个模糊的影响,因为磁贴是异步生成的,并且仍然不理想,因为它使用大量内存实际上是一个微不足道的'绘制一些线路的任务。

似乎我能以某种方式控制每个帧通过OpenGL绘制我自己的网格,并告诉UIKit不要为scrollview创建一个位图缓冲区,这将是完美的,但不确定这是否可行,甚至是正确的方法?

在Android上我只是控制了整个绘图/缩放/平移,但这似乎在iOS上看起来非常过分,似乎已经提供了大部分内容?

1 个答案:

答案 0 :(得分:1)

您应该查看WWDC 2009视频会话102:“掌握iPhone Scroll Views”以及Apple的ScrollViewSuite示例项目。他们解释了如何使用不同的缩放级别进行平铺滚动视图,这听起来就像你需要的那样。