使用解析我正在下載圖像,文本等並在表格視圖單元格中使用它們。但是,在刷新時(當指示器在導航欄中動畫時),我無法滾動或移動應用程序。就好像應用程序在表視圖刷新完成之前變得沒有響應。刷新時UITableView無法滾動
任何幫助,非常感謝。
使用解析我正在下載圖像,文本等並在表格視圖單元格中使用它們。但是,在刷新時(當指示器在導航欄中動畫時),我無法滾動或移動應用程序。就好像應用程序在表視圖刷新完成之前變得沒有響應。刷新時UITableView無法滾動
任何幫助,非常感謝。
下面是一個關於如何分派到不同線程的簡單示例,下載圖像並在下載完成後返回主線程。
func downloadImageAndUpdateUI(){
imageView?.image = nil
if let imageUrl = aValidUrl{
//get image on another thread
let qos = Int(QOS_CLASS_BACKGROUND.rawValue)
dispatch_async(dispatch_get_global_queue(qos, 0), {
let imageData = NSData(contentsOfURL: imageUrl)
//get back to main thread
dispatch_async(dispatch_get_main_queue(), {
if imageUrl == self.requestedImageUrl { //making sure if this image is still needed (or if user havent moved on to something else)
if imageData != nil{
self.imageView.image = UIImage(data: imageData!)
}
}
})
})
}
}
由於您正在同步下載,這需要時間,因此您將阻止該接口。在現實生活中,如果你這樣做的話,WatchDog程序會在你的用戶眼前死掉你的應用程序。做一些研究;這個問題已經遍佈Stack Overflow(解決方案也是如此)。 – matt
如果您在主線程中執行這些操作,則會阻止UI,您應該在後臺線程中下載數據。 – flizana