xon*_*rlz 11 iphone objective-c ipad
我有以下方法,它基本上调用请求在后台线程中加载图像的NSData数组:
[query findObjectsInBackgroundWithBlock:^(NSArray * objects, NSError * error){
}];
Run Code Online (Sandbox Code Playgroud)
在这种情况下,objects是NSData的数组.问题是,如果我要加载100个图像(数组中有100个元素).这意味着用户必须等待一段时间才能看到UITableView中出现的任何图像.我想要做的是让他们看到图像一旦可用/加载..我是否必须更改代码,以便它执行100个后台线程来加载图像?
Hei*_*koG 49
你可以在你的cellForRowAtIndexPath中实现这样的东西:
这样你就可以在后台加载每个图像,一旦加载了相应的单元格,就会在mainThread上更新.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) {
NSData *data0 = [NSData dataWithContentsOfURL:someURL];
UIImage *image = [UIImage imageWithData:data0];
dispatch_sync(dispatch_get_main_queue(), ^(void) {
UIImageView* imageView = (UIImageView*)[cell viewWithTag:100];
imageView.image = image;
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15824 次 |
| 最近记录: |