我试图将包含多个CAShapeLayers的CATransformLayer渲染到png文件中。我知道如何设置基本渲染,这确实有效。
虽然当我在CATransformLayer上调用renderInContext时,它会将所有内容展平为2D并完全忽略我的变换矩阵(旋转和/或透视)。
如何将我的3d CATransformLayer及其所有CAShapeLayers呈现为PNG / UIImage?
答案 0 :(得分:6)
由于您仅定位iOS7及更高版本,我建议您放弃renderInContext:
并将其替换为-[UIView drawViewHierarchyInRect:afterScreenUpdates:]
。您的代码可能看起来像这样:
UIGraphicsBeginImageContext(sizeOfYourImage);
[yourViewToRender drawViewHierarchyInRect:(CGRect){0, 0, sizeOfYourImage} afterScreenUpdates:YES];
UIImage *renderedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();