我希望将一些图形预渲染到CGLayer
以便将来快速绘制。
我发现CGLayerCreateWithContext
需要CGContext
参数。它可以在drawRect:
方法中轻松找到。但我需要在CGLayer
之外创建drawRect:
。我应该在哪里获得CGContext
?
我应该简单地创建临时CGBitmapContext
并使用它吗?
更新: 我需要在drawRect之外创建CGLayer:因为我想在渲染之前初始化CGLayer。可以在第一次drawRect调用时初始化一次,但对我来说这不是一个很好的解决方案。
答案 0 :(得分:0)
没有理由在drawRect:
之外做到这一点,事实上,在里面做这件事有一些好处。例如,如果您更改视图的大小,图层仍将以正确的大小进行制作(假设它基于您的视图的图形上下文而不仅仅是任意大小)。这是一种常见的做法,我不认为在外面创建它会有好处。无论如何,大部分CPU周期将用于CGContextDrawLayer
。
答案 1 :(得分:0)
您可以通过此功能创建它,您可以在渲染块中渲染您的内容
lock
我几天前写的。我用它在可变线程中绘制一些UIImages。 您可以在https://github.com/PengHao/GLImageView/下载代码 文件路径是GLImageView / GLImageView / ImagesView.m