Ios 背景中的CALayer绘图

Ios 背景中的CALayer绘图,ios,asynchronous,calayer,Ios,Asynchronous,Calayer,我必须在iOS应用程序中绘制一个大而复杂的图形。绘图区域还必须可滚动和缩放。 我通过将绘图区域拆分为许多小的Calayer作为瓷砖来实现这一点。每当用户滚动绘图区域一定量时,不可见区域的平铺将移动到另一侧,并在其中绘制新内容。每个CALayer都有一个图形代理,只有移动的平铺才能获得setNeedsDisplay调用 事实上,我以某种方式模仿了CATiledLayer的行为,我不能直接使用它,因为我需要比它提供的更多的控制和灵活性 到目前为止,我的代码运行得很好,但是在复杂的图形上,当内容在滚动

我必须在iOS应用程序中绘制一个大而复杂的图形。绘图区域还必须可滚动和缩放。 我通过将绘图区域拆分为许多小的Calayer作为瓷砖来实现这一点。每当用户滚动绘图区域一定量时,不可见区域的平铺将移动到另一侧,并在其中绘制新内容。每个CALayer都有一个图形代理,只有移动的平铺才能获得setNeedsDisplay调用

事实上,我以某种方式模仿了CATiledLayer的行为,我不能直接使用它,因为我需要比它提供的更多的控制和灵活性

到目前为止,我的代码运行得很好,但是在复杂的图形上,当内容在滚动过程中被重新绘制时,UI中仍然会出现一些问题。我希望绘图完全在后台进行,但UI线程在绘图过程中似乎会阻塞

有没有办法让iOS在后台异步调用CALayer的绘图委托?实际上,我并不介意图形显示是否有点延迟(因为平铺无论如何都会显示在可见区域之外)。

将属性设置为
YES
。这将在后台线程中对绘图请求进行排队,而不是在主线程中进行绘图