2016-08-07 15 views
0

私は、を開くtableViewCellを持っている素早くiOS 9でこれが本当に奇妙な動作をしています。何かを撮るためにタップすると、あなたが...それはピッカーを開くには10秒のようにかかりますが、あなたはそれを2回タップすると、それはすぐに開く初めてUIImagePickerController初めてダブルクリックしたときを除いて、遅くなりました

をセルをタップすると

let certificateImagePicker = UIImagePickerController() 
certificateImagePicker.delegate = self 
certificateImagePicker.allowsEditing = false 
certificateImagePicker.sourceType = .Camera 
certificateImagePicker.modalPresentationStyle = .CurrentContext 
を次のようにピッカーのための初期化コードがあります

ピッカーを表示するコードはpresentViewController(certificateImagePicker, animated: false, completion: nil)

01です

それが関連している場合、私は今ないがピッカーを開いた後、それは空のスナップショットで結果をレンダリングされていないビューをスナップショットこのエラーメッセージ

を示しました。 スナップショットを作成する前にビューがレンダリングされていることを確認してください。または、画面更新後にスナップショット スナップショットを作成してください。

+0

ピッカーをバックグラウンドスレッドから提示していますか?また、プレゼンテーションスタイルを '.CurrentContext'に設定する理由は? – shakked

答えて

1

以前にも同様の問題がありました。私はちょうど私のコードをdispatch_asyncの中に入れて、より速く実行するでしょう。

dispatch_async(dispatch_get_main_queue(), 
{ 
    let certificateImagePicker = UIImagePickerController() 
    certificateImagePicker.delegate = self 
    certificateImagePicker.allowsEditing = false 
    certificateImagePicker.sourceType = .Camera 
    certificateImagePicker.modalPresentationStyle = .CurrentContext 
    presentViewController(certificateImagePicker, animated: false, completion: nil) 
}) 
0

私は、最初の試行でuiimagepickercontrollerを提示するのと同様の遅延を経験しました。私の場合、スーパー監視コントローラをロードするときにコントローラーを初期化するのに何が役立ったのですか?

Class viewController: UIViewController { 
    let certificateImagePicker = UIImagePickerController() 

// your superview code here 

    func presentImagePicker { 
     certificateImagePicker.delegate = self 
     certificateImagePicker.allowsEditing = false 
     certificateImagePicker.sourceType = .Camera 
     certificateImagePicker.modalPresentationStyle = .CurrentContext 
     presentViewController(certificateImagePicker, animated: false, completion: nil) 
    } 
} 
関連する問題