2017-08-02 9 views
0

UIViewUIImageに変換する拡張機能を使用していますが、私はiOSシミュレータで正しい画像を得ることができますが、実際のデバイスでは黒い画像が得られるという奇妙な問題に直面しています。以下は私のコードですUIViewをUIImage Swift 3に変換する

実際のデバイスで正しいイメージを得ることができないと私は間違って説明してくれますか?

EDIT

観察:私はシミュレータでこの拡張にUIViewのを渡すたびに、私は実際のデバイスでは、この拡張にUIViewのを渡すたび

私はそのビュー

の完璧な画像を得るIシミュレータの結果とは違って、UIViewの要素の代わりに完全に黒い画像を取得します。

+0

[こちら](https://stackoverflow.com/questions/4334233/how-to-capture-uiview-to-uiimage-without-loss-of-quality-on-retina-display)をご確認ください。あなたは答えを得た。 –

+0

具体的にどのようにあなたのコードがあなたがしたいことをしないか教えてください。どのようなエラーが出ているのですか、結果はあなたが望むものではないのですか? –

+0

@DuncanC私は私の質問を編集し、私の観察を追加しました。まだ不明な場合は教えてください – iYoung

答えて

3
extension UIImage { 
    class func imageWithView(view: UIView) -> UIImage? { 
     UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.isOpaque, 0.0) 
     view.drawHierarchy(in: view.bounds, afterScreenUpdates: true) 
     let img = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return img 
    } 
} 

+0

こんにちは、あなたの答えをありがとう、私はすでにそれを試していた&もう一度それを検証し、私も同様にこれを取得しています。それはシミュレータ上で完璧に動作していますが、実際のデバイスでは黒いイメージを返しています。 – iYoung

+0

黒いイメージを取得している場合は、不透明をfalseに設定してみてください。 'UIGraphicsBeginImageContextWithOptions(view.bounds.size、false、0.0)' – OffensivelyBad

関連する問題