Jerarquía de CALayer, la mejor manera de dibujarlo en un context exactamente como se muestra en la pantalla

¿Cuál es la mejor manera de dibujar una jerarquía entera de CALayer en un context (de ahí un UIImage, PDF)?

Mi jerarquía contiene CATransformLayer , CATextLayers , CAReplicatorLayers y CAShapeLayers .

Se ve bien en la pantalla, pero nunca lo veo igual en el UIImage (y no quiero usar un renderizado de captura de pantalla, ya que quiero que los CAShapeLayers y CATextLayers se representen como un gráfico de vértice en PDF)

Estos son algunos de los problemas que estoy enfrentando:

  1. El renderizado ignora la propiedad zPosition y la translation.z en la transformación, lo hace estrictamente por el order en la matriz de subcapas.
  2. Mis capas tienen frames / position / transforms mixed y muchas veces las capas se mueven (pseudo-aleatoriamente) al renderizar.
  3. A veces, CAReplicatorLayers simplemente se ignora y solo la primera instancia se representa en CGContext
  4. Tan pronto como un valor de translation.z de la transformación se configura en un valor distinto de cero, esa capa ignora por completo su transfrom y se convierte en (0, 0), trabajé alnetworkingedor de eso orderando manualmente las capas y estableciendo la zTranslation a 0 pero no es muy cómodo.

¡Espero que alguien de ustedes conozca una manera fácil y segura de convertir todo en un context exactamente como se muestra en la pantalla!