如何asynchronous加载dynamicUITableView图像?
现在我有一个图像和标签的自定义单元格。 后来我打印这些细胞:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell:customCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! customCell var url = NSURL(string: postCover[indexPath.row]) if let data = NSData(contentsOfURL: url!) { cell.cellImage.image = UIImage(data: data) } var title = postTitle[indexPath.row] cell.cellLabel.text = title let indexPath = tableView.indexPathForSelectedRow() return cell }
当我打开一个应用程序,并滚动它冻结。 我该如何解决这个错误?
我读了一下,我必须在我的tableView中使用asynchronous图像加载,但我不加载它们asynchronous已经?
我search了4-5天,一无所有。 任何人都可以给我一些提示,请吗?
您可以使用GCD将每个单元格asynchronous下载图像,
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell:customCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! customCell var url = NSURL(string: postCover[indexPath.row]) cell.imageView.image = nil; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); dispatch_async(queue, ^(void) { NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:parsedData[@"imageLR"]]; UIImage* image = [[UIImage alloc] initWithData:imageData]; if (image) { dispatch_async(dispatch_get_main_queue(), ^{ if (cell.tag == indexPath.row) { cell.imageView.image = image; [cell setNeedsLayout]; } }); } }); return cell }
对于Swift你可以这样做
if let data = self.cache.objectForKey(urlString) as? NSData { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) { let image = UIImage(data: data) dispatch_async(dispatch_get_main_queue()) { cell.imageView.image = image; } }
你可以在gitHub上使用第三部分Library SDWebImage。 它基于Objective-C,另有基于Swift的图书馆翠鸟 。 也许这就是你想要的。
在swift中创build一个桥接头。导入AFNetworking头文件
然后find这些方法setImageWithURLRequest
cell.imageView.setImageWithURLRequest
可以用这种方式调用
- 从asynchronousWeb服务响应更新托pipe对象的最佳方法?
- 如果方法使用NSURLConnection如何返回输出与块的asynchronous调用
- 在iOS中的UITableViewasynchronous图像加载的build议
- 如何asynchronous加载UITableViewcell图像,以便滚动不滞后
- 后台networking调用 – iOS
- iOS SDWebImage淡入新图像
- 使stringWithContentsOfURLasynchronous – 是否安全?
- 核心数据加载Swift后asynchronous刷新UITableView
- asynchronous获取Swift Xcode