我有一个弹出窗口需要显示,直到所有图像都上传到视图控制器上,我使用dispatch-async方法在所有图像上传之前显示弹出窗口并在图像显示时隐藏。
但是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 :(得分:-1)
功能" imageIconTapped"是已经在主线程上运行的UIKit方法。因此无需将代码分派给主队列。
当您将代码从主线程分派到主队列时,主线程就会阻塞。