为CGLayer创建CGContext

时间:2012-06-26 12:57:23

标签: ios core-graphics cgcontext cglayer

我希望将一些图形预渲染到CGLayer以便将来快速绘制。

我发现CGLayerCreateWithContext需要CGContext参数。它可以在drawRect:方法中轻松找到。但我需要在CGLayer之外创建drawRect:。我应该在哪里获得CGContext

我应该简单地创建临时CGBitmapContext并使用它吗?

更新: 我需要在drawRect之外创建CGLayer:因为我想在渲染之前初始化CGLayer。可以在第一次drawRect调用时初始化一次,但对我来说这不是一个很好的解决方案。

2 个答案:

答案 0 :(得分:0)

没有理由在drawRect:之外做到这一点,事实上,在里面做这件事有一些好处。例如,如果您更改视图的大小,图层仍将以正确的大小进行制作(假设它基于您的视图的图形上下文而不仅仅是任意大小)。这是一种常见的做法,我不认为在外面创建它会有好处。无论如何,大部分CPU周期将用于CGContextDrawLayer

答案 1 :(得分:0)

您可以通过此功能创建它,您可以在渲染块中渲染您的内容

lock

我几天前写的。我用它在可变线程中绘制一些UIImages。 您可以在https://github.com/PengHao/GLImageView/下载代码 文件路径是GLImageView / GLImageView / ImagesView.m