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