用户界面不会立即更新 iOS



我的代码如下所示:

var images = [UIImage]()
var isFirstLoop = true
for (imageID in self.imageID’s)
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORIT Y_DEFAULT, 0), {
        let imageToAdd = self.getImageFromUrlByID(imageID)
        if isFirstLoop
        {
            self.addSubView(imageToAdd)
            isFirstLoop = false
        }
    }
}

我只是想不通为什么在所有任务完成后将第一个图像添加为子视图......我试图用任何可能的dispatch_async与主线程等组合来包装 addSubView......在将图像添加为子视图之前需要很长时间。请帮我:)提前感谢!!:)

总是 从主线程更新UI。

仅包含实际更新 UI 的dispatch_get_main_queue。如果您的方法getImageFromURLByID()访问互联网(我假设它确实如此),那么您不希望在 UI 线程上建立任何连接,因为它通常会冻结它。

for imageID in imageIDs
{
    let imageToAdd = self.getImageFromUrlByID(imageID)
    if isFirstLoop {
        dispatch_async(dispatch_get_main_queue() {
            var imageView = UIImageView(image: imageToAdd)
            imageView.frame = someFrame
            self.addSubView(imageView)
        }
        isFirstLoop = false
    }
}

最新更新