我尝试将我的视图(红色视图)保存到设备的照片库,但保存后它有白色。
func saveViewToImage()
{
redView.backgroundColor = UIColor.red
let rect = CGRect(origin: CGPoint.zero, size: redView.frame.size)
UIGraphicsBeginImageContextWithOptions(rect.size, false, UIScreen.main.scale)
redView.draw(rect)
let resultImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(resultImage!, nil, nil, nil)
}
为什么?
答案 0 :(得分:1)
UIView
draw(_ rect:)
方法默认情况下不执行任何操作。它就在那里你可以继承UIView
并做自己的绘图。
为了将您的视图绘制到上下文中,您需要使用专门为此创建的功能之一。
在您的情况下,您可以将redView.draw(rect)
更改为:
redView.drawHierarchy(in: rect, afterScreenUpdates: true)
您还可以使用其他方法,例如使用视图层的方法:
guard let context = UIGraphicsGetCurrentContext() else { return }
redView.layer.render(in: context)