绘制带有转换为UIImage的UIView

时间:2018-07-31 15:18:28

标签: ios uiview uiimage screenshot image-capture

使用UIViewUIImage方法将drawHierarchy(in: afterScreenUpdates:)绘制到CALayer.render中很容易,例如:

let renderer = UIGraphicsImageRenderer(size: size)
return renderer.image { rendererContext in
    view.drawHierarchy(in: view.frame, afterScreenUpdates: true)
}

但是我想渲染UIView,包括其变换和/或其图层的变换。我该如何实现?我需要渲染经过缩放和旋转的UIView

一个后备解决方案是将其超级视图呈现为UIImage,但为此,我将不得不更改UI层次结构...

1 个答案:

答案 0 :(得分:1)

此问题有解决方法。使用转换后的视图中的UIView将带有转换的frame包装到另一个视图中(不进行转换)。将转换后的视图放在包装器视图的.zero位置,然后调用drawHierarchy(in:)(在包装器视图上)。

或者在我的特定情况下,我需要绘制文本视图,最后我直接使用Core Graphics绘制了文本。