コンテンツへスキップ

【Swift】UIViewをUIImageに変換する

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
    }
}

もっと手軽な方法もあると思いますが、あまり多様するようなものでもありませんのでとりあえず動けばいいかぐらいのコードです