介绍如果将UIView截图成UIImage并且保存到相册中,通过使用UIView的扩展方式实现,好处有两点,1是可以对Window整个窗口操作,2是对单独View视图操作。具体实现代码如下,非常简单。
为方便使用,我们首先对 UIView 进行扩展(UIView+Ext.swift),增加一个将其转为 UIImage 的方法
import UIKit
extension UIView {
//将当前视图转为UIImage
func asImage() -> UIImage {
let renderer = UIGraphicsImageRenderer(bounds: bounds)
return renderer.image { rendererContext in
layer.render(in: rendererContext.cgContext)
}
}
}
使用方式
/// 整个窗口截屏
let image = UIApplication.shared.keyWindow!.asImage()
/// 某一个单独View截图
let image = self.imageBgView.asImage()
/// 将转换后的UIImage保存到相机胶卷中
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)