请看这个简单的 CATiledLayer 示例https://github.com/seanhess/CATiledLayer-Example
它由一个具有如下层次结构的 viewController 组成:
view: (frame = window size)
scrollView: (frame = window size, content size = 200 x 4000)
contentView: (frame = content size = 200 x 4000, tile size = 100 x 100)
内容视图的图层已被覆盖为 CATiledLayer。
如果您运行链接代码,您会看到多次请求具有相同矩形的图块。它在您第一次运行代码和滚动时都会发生。
切换到分支“单列” - 它只发生在 init 上,永远不会在您向下滚动时发生。
切换到分支“default-tile-size”——它只发生在 init 上,但很少发生(你必须在它发生之前多次运行它)
我正在尝试编写一些代码drawLayer:inContext:
来定位正确的数据并绘制它。它可能很昂贵,我不想多次这样做。
知道发生了什么吗?我能做些什么不同的事情?