3

我正在尝试将包含多个 CAShapeLayers 的 CATransformLayer 渲染为 png 文件。我知道如何设置基本渲染并且确实有效。

虽然当我在 CATransformLayer 上调用 renderInContext 时,它会将所有内容展平为 2D 并完全忽略我的转换矩阵(旋转和/或透视)。

我该怎么做才能将我的 3d CATransformLayer 及其所有 CAShapeLayers 渲染为 PNG / UIImage?

4

1 回答 1

6

由于您仅针对 iOS7 及更高版本,我建议您放弃renderInContext:并将其替换为-[UIView drawViewHierarchyInRect:afterScreenUpdates:]. 您的代码可能看起来像这样:

UIGraphicsBeginImageContext(sizeOfYourImage);

[yourViewToRender drawViewHierarchyInRect:(CGRect){0, 0, sizeOfYourImage} afterScreenUpdates:YES];

UIImage *renderedImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();
于 2014-05-08T15:18:05.183 回答