2016-06-27 5 views
1

Ich habe ein Popup, das angezeigt werden muss, bis alle Bilder auf dem View-Controller hochgeladen werden, verwende ich Dispatch-Async-Methode, um das Popup anzuzeigen, bevor alle Bilder hochgeladen werden und ausblenden, wenn die Bilder angezeigt werden.UIView Bildschirm Einfrieren beim Aufruf dispatch_async (dispatch_get_main_queue())

Aber die UIView Bildschirm friert Anzeige hängen Popup auf Aufruf dispatch_async Methode wo ich falsch im Code war oder was ist der beste Weg, um dies zu erreichen.

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

Wir können nicht sagen, warum es so lange dauert, ohne zu sehen, was Sie mit dem Bild machen. Können Sie den Rest Ihres Codes posten? –

+0

Eigentlich muss ich Popup zeigen, wenn Bilder nicht hochgeladen werden, Popup-Show aber uiview friert ein, wenn dispatch_async (dispatch_get_main_queue) Aufruf ist und hier ist die Methode, um die Bilder zu senden. – fmashkoor

+0

Vielen Dank für Ihre schnelle Antwort, es ist jetzt gelöst. – fmashkoor

Antwort

-1

Die Funktion „imageIconTapped“ ist UIKit Methode, die bereits auf der Haupt ausgeführt thread.So keine Notwendigkeit Code zur Hauptwarteschlange versenden.

Haupt-Thread ist blockiert, wenn Sie Code vom Haupt-Thread zur Hauptwarteschlange versenden.

Verwandte Themen