サブビューを含むビューをキャプチャしたい。このコードを使用して画面をキャプチャしています:Swift:サブビュー付きのビューのスクリーンショットを保存するにはどうすればいいですか?
let view = self.faceTrackerContainerView
UIGraphicsBeginImageContext(CGSizeMake(view.bounds.size.width, view.bounds.size.height))
UIGraphicsGetCurrentContext()!
self.view?.drawViewHierarchyInRect(view.frame, afterScreenUpdates: true)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
これらのコードは、ビューの前にあるボタンを含む画面全体をキャプチャします。私はこれらのコードを試みたが、それが唯一のサブビューを除く主なビューをキャプチャ:
let view = self.faceTrackerContainerView
let scale = UIScreen.mainScreen().scale
UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, scale);
view.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
私もここからsnapshotViewAfterScreenUpdates(true)
を試してみましたが、私はそれを実装する方法がわかりません。私はビューの下にcollectionViewとビューの上にボタンを持っています(どちらもビューにありません)。最初のコードは、button、collectionView、およびsubviewを使用してすべてをキャプチャします。 2番目のコードは、サブビューなしでビューをキャプチャします。私が何が欠けているのか、それ以外に何ができるのか教えてください。ありがとう!
キャプチャしたいすべてのサブビューが画面に表示されますか? – BaSha
はい、そうです。私は、私がスクリーンショットで望んでいないビューを隠して、それを後で戻すと思う。 – Vinz