2017-06-12 15 views
0

私は、ボタンを押して部分的なスクリーンショットを撮ってカメラロールに保存しようとしています。ボタンプレスで部分的にスクリーンショットを取る

私は別の質問から見つけたコードを持っていますが、ボタンを押すとアプリケーションがクラッシュします。引数を指定して

// Declare the snapshot boundaries 
let top: CGFloat = 100 
let bottom: CGFloat = 0 

// The size of the cropped image 
let size = CGSize(width: view.frame.size.width, height: view.frame.size.height - top - bottom) 

// Start the context 
UIGraphicsBeginImageContext(size) 

// we are going to use context in a couple of places 
let context = UIGraphicsGetCurrentContext()! 

// Transform the context so that anything drawn into it is displaced "top" pixels up 

context.translateBy(x: 0, y: -top) 

// Draw the view into the context (this is the snapshot) 
view.layer.render(in: context) 
let snapshot = UIGraphicsGetImageFromCurrentImageContext() 

// End the context (this is required to not leak resources) 
UIGraphicsEndImageContext() 

// Save to photos 
UIImageWriteToSavedPhotosAlbum(snapshot!, nil, nil, nil) 
+0

をデバッグしましたか?あなたはコンセントを設定しましたか、ボタンのセレクターを正しく追加しましたか? –

+1

クラッシュログを共有してください。 – Developer

+0

@iaslaの問題を解決しますか? –

答えて

0

この関数を呼び出しであなたのスクリーンショットビュー: - あなたはラインがクラッシュしたこのコードを

func imageWithView(view: UIView) -> UIImage { 
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0) 
    view.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
    let img = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    return img 
} 
関連する問題