UIViewなどをUIImageに変換するextensionです
extension UIView {
func toImage() -> UIImage? {
let rect = self.bounds
// contextを作成する
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
guard let context : CGContext = UIGraphicsGetCurrentContext() else {
return nil
}
// viewの表示をcontextにcopy
self.layer.render(in: context)
// contextをUIImageとして取得
let image = UIGraphicsGetImageFromCurrentImageContext()
// contextを閉じる
UIGraphicsEndImageContext()
return image
}
}
もっと手軽な方法もあると思いますが、あまり多様するようなものでもありませんのでとりあえず動けばいいかぐらいのコードです