2016-06-27 14 views
1

すべての画像がビューコントローラにアップロードされるまで表示する必要があるポップアップがあります。すべての画像がアップロードされる前にdispatch-asyncメソッドを使用してポップアップを表示します画像表示として非表示にします。dispatch_async(dispatch_get_main_queue())を呼び出すときのUIView画面のフリーズ

しかし、UIViewの画面では、dispatch_asyncメソッドを呼び出すときにハングポップアップが表示されてフリーズしています。これは、コードが間違っているか、これを達成するための最良の方法です。

func imageIconTapped(gesture: UITapGestureRecognizer){ 
     self.loadingPopUp = showPopUp(self, txt: “Processing..") 
     self.navigationController!.view.addSubview(self.loadingPopUp!) 

     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { 

      code to getting the image // getting the images is time taking therefore it work in the background. 

      dispatch_async(dispatch_get_main_queue()) {     

     method to upload the images on the view controller and hide the popup.    
     } 
+0

イメージを使って何をしているのか分からずに、なぜそれが長くかかるのかわかりません。残りのコードを投稿できますか? –

+0

実際には、画像がアップロードされていないときにポップアップを表示する必要がありますが、dispatch_async(dispatch_get_main_queue)が呼び出されたときにuiviewがフリーズし、画像を送信する方法がここにあります。 – fmashkoor

+0

あなたの素早い返信をありがとう、その解決されました。 – fmashkoor

答えて

-1

機能「imageIconTappedは、」必要はメインキューにコードをディスパッチしないようにthread.Soすでにメイン上で実行されるのUIKit方法です。

メインスレッドからメインキューにコードをディスパッチすると、メインスレッドはブロックになります。

関連する問題