CALayer 层次结构,将其完全按照屏幕上显示的方式绘制到上下文的最佳方式

Max*_*Max 5 core-animation objective-c calayer cgcontext ios

将整个CALayer层次结构绘制到上下文(因此是 UIImage、PDF)的最佳方法是什么?

我的层次结构包含CATransformLayerCATextLayersCAReplicatorLayersCAShapeLayers

它在屏幕上看起来不错,但我从来没有让它在 UIImage 中看起来一样(我不想使用类似屏幕截图的渲染,因为我希望CAShapeLayersCATextLayers被渲染为 PDF 的顶点图形)

这些是我面临的一些问题:

  1. 渲染会忽略变换中的 zPosition 属性和 translation.z,它严格按照 sublayers 数组中的顺序进行渲染。
  2. 我的图层混合了帧/位置/变换,并且在渲染时经常会移动(伪随机)图层。
  3. 有时CAReplicatorLayers被简单地忽略,只有第​​一个实例被渲染到 CGContext
  4. 一旦将转换的 translation.z 值设置为非零值,该层就完全忽略其转换并将自身呈现在 (0, 0),我通过手动对层进行排序并将 zTranslation 设置为0 但不是很舒服。

我希望你们中的某个人知道一种简单而安全的方法来将所有内容渲染到与屏幕上显示的完全一样的上下文!