これを行う方法については、いくつかの他のStack Overflowの回答を見てきました。彼らはかなりうまく動作し、私はカメラロールにそれらを保存するためのコードを追加しました。この質問の最後にコードを追加しました。UIViewをレンダリングバーやツールバーなどを使用せずにUIImageにレンダリングする方法
このコードは、UIViewに添付されたカスタムUIViewクラスの内部にあります。ユーザーはそのUIViewの内部にイメージを描画して保存します。しかし、保存機能を使用すると、ナビゲーションバーと他のUIImagesの束が画像に保存されます。私はそれを望んでいません。私は、それは、全体のビューではなく、そのUIView上のものを保存するだけです。
私はここで、述べたようにコードがある:
func downloadImage() {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.isOpaque, 0.0)
self.layer.render(in: UIGraphicsGetCurrentContext()!)
let img = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(img!, nil, nil, nil)
}
編集:私はなぜ考え出しました。 Interface Builderでは、追加の要素はすべて、私が画像を保存していたビューの子であった。私の愚かなミスから学び、それをしないでください:)