Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用转换为UIImage绘制UIView_Ios_Uiview_Uiimage_Screenshot_Image Capture - Fatal编程技术网

Ios 使用转换为UIImage绘制UIView

Ios 使用转换为UIImage绘制UIView,ios,uiview,uiimage,screenshot,image-capture,Ios,Uiview,Uiimage,Screenshot,Image Capture,使用drawHierarchyin:AfterScreenUpdate:和CALayer.render方法可以轻松地将UIView绘制到UIImage中,例如: let renderer = UIGraphicsImageRenderer(size: size) return renderer.image { rendererContext in view.drawHierarchy(in: view.frame, afterScreenUpdates: true) } 但我想渲染UI

使用drawHierarchyin:AfterScreenUpdate:和CALayer.render方法可以轻松地将UIView绘制到UIImage中,例如:

let renderer = UIGraphicsImageRenderer(size: size)
return renderer.image { rendererContext in
    view.drawHierarchy(in: view.frame, afterScreenUpdates: true)
}
但我想渲染UIView,包括其变换和/或其层的变换。我怎样才能做到这一点?我需要渲染一个缩放和旋转的UIView


一个备用解决方案是将其superview渲染为UIImage,但为此,我必须更改UI层次结构…

此问题有一个解决方法。将带有变换的UIView包装到另一个视图中,而不使用变换视图的框架进行变换。将转换后的视图放在包装器视图的.zero位置,并在包装器视图上调用drawHierarchyin:

或者在我的特殊情况下,我需要绘制文本视图,最终直接用核心图形绘制文本