私はそれのUIView canvas
スクリーンショットを保存したいと思います. これはシミュレーターで機能しますが、私が好きな方法で画像を生成しません:UIBarButton shareBarButton
- 理想的には、スナップショットをどのように表示したいか(画面上部にキャリア、時間、バッテリーの状態がない場合を除く)。
- カメラロールのスナップショットが実際にどのように見えるか。
スナップショットを iPhone の画面とまったく同じように表示したいのです。そのため、形状の一部が画面からはみ出す場合、スナップショットは画面に表示されている形状の部分のみをキャプチャします。また、スナップショットのサイズは、canvas
基本的にビューのサイズと同じですが、高さがわずかに短くなります。
canvas = UIView(frame: CGRectMake(0, 0, view.bounds.height, view.bounds.height-toolbar.bounds.height))
誰かが私がスナップショットを作成する際に間違っていることを教えてくれたら、それは大歓迎です!
私のコード:
func share(sender: UIBarButtonItem) {
let masterpiece = canvas.snapshotViewAfterScreenUpdates(true)
let image = snapshot(masterpiece)
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
func snapshot(masterpiece: UIView) -> UIImage{
UIGraphicsBeginImageContextWithOptions(masterpiece.bounds.size, false, UIScreen.mainScreen().scale)
masterpiece.drawViewHierarchyInRect(masterpiece.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}