将文档目录中的图像异步加载到UITableView中

时间:2014-11-11 06:58:23

标签: objective-c uitableview nsdocumentdirectory

我有UITableView,我需要使用代码NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES ); NSString *docDirectory = [sysPaths objectAtIndex:0]; dispatch_queue_t queue_=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue_, ^{ NSString *filePath=[docDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"MyFolder_New/%@",[[[tableArray objectAtIndex:indexPath.row] componentsSeparatedByString:@"/"] lastObject]]]; dispatch_async(dispatch_get_main_queue(), ^{ [img setImage:[UIImage imageWithData:[NSData dataWithContentsOfFile:filePath]]]; [indicator stopAnimating]; }); });从文档目录列出我保存的图像,以便异步显示图像到UITableView,但UITableView在向上和向下滚动时滞后。

1 个答案:

答案 0 :(得分:0)

您需要在方法tableView:cellForRowAtIndexPath中使用dispatch_asynch:在返回之前自定义单元格。 脚步: 1.从池中取出细胞。 2.定制它。 3.启动dispatch_asynch,什么将设置正确的图像(这需要检查单元格是否仍然相同)到单元格。

我们一直这样做,我们从来没有滞后。但是图像出现在延迟的单元格中(这是正确的)。试试吧。