Viewを画像として共有したい
解決したいこと
iPhoneで健康状態を記録、送信するアプリを制作しています。
Viewを画像として共有できるようにしたいと考えています。
実行環境はxcode12.0.1,swift5です。
初学者なので、もし回答に際して不足している情報等あれば
指摘していただけると
幸いです。
発生している問題・エラー
Fatal error: Unexpectedly found nil while unwrapping an Optional valueと表示され、Viewが正しく取得されていないようです。
該当するソースコード
ViewをUIviewとして取得するまでは以下の記事を参考にさせて頂きました。
https://qiita.com/tsuzuki817/items/a3d2470ba9df07ed0d99
https://qiita.com/tsuzuki817/items/604d059aac3e14f65942
struct RectangleGetter: View {
@Binding var rect: CGRect
var body: some View {
GeometryReader { geometry in
self.createView(proxy: geometry)
}
}
func createView(proxy: GeometryProxy) -> some View {
DispatchQueue.main.async {
self.rect = proxy.frame(in: .global)
}
return Rectangle().fill(Color.clear)
}
}
UIViewからUIImageへの変換は以下のようにUIGraphicsImageRendererを
利用しています。
extension UIView {
func getImage(rect: CGRect) -> UIImage {
let renderer = UIGraphicsImageRenderer(bounds: rect)
return renderer.image {
rendererContext in layer.render(in: rendererContext.cgContext)
}
}
}
0 likes