我正在开发一个应用程序,我在CATiledLayer中呈现PDF内容。我想在完成平铺图层的渲染后触发一个方法。
在完成所有可见切片的渲染后,是否会立即调用任何委托方法?有没有其他方法可以知道何时完成?
答案 0 :(得分:3)
您可以在绘制之前计算绘图所需的平铺数量。在tilingview的drawRect中,每个图块仅绘制一次。因此,将一个计数器放在调用新磁贴的draw rect的一部分中。当您的计数器达到总数时,请调用您的方法。
请记住,平铺的绘制是在后台线程上完成的。
答案 1 :(得分:0)
这需要一些创造性思维。我有一个类似的问题,我需要中止循环中间平铺图层的渲染。我处理它的方式有点复杂,但似乎工作得相当好。它涉及将绘制调用包装到NSThread
内的平铺图层。线程有一个isFinished
bool,您可以键值观察以发现平铺图层何时完成其渲染。
如果你对iOS上的线程感觉不舒服,这可能比它的价值更麻烦,但是会让你知道渲染何时完成,并且还能够取消线程操作(以及渲染) )如果需要的话。