gpt4 book ai didi

ios - 使用 GCD 在 UITableviewCell 中异步加载和缓存图像

转载 作者:行者123 更新时间:2023-11-29 03:20:36 24 4
gpt4 key购买 nike

我使用 json 数据在 UITableview 中显示图像并获取图像。但数据显示在 UITablevewcells 中。但图像没有显示。显示图像后需要一些时间。所以我想使用 GCD 异步显示我的 uitableview 的图像。但我不知道异步 GCD 概念。请告诉我如何在我的编码中应用异步 GCD 概念。请任何机构给我指导。这是我的代码。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[UIApplication sharedApplication].networkActivityIndicatorVisible=YES;
NSError *err;
NSString *strResponse=[[NSString alloc]initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"response is %@",strResponse);
dit=[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:&err];
NSArray *arrResults = [dit valueForKey:@"classifieds_mst"];
listOfObjects = [NSMutableArray array];

for(dictRes in arrResults) {
Attributes *at = [[Attributes alloc]init];
at.classimage=[dictRes valueForKey:@"image_name"];
[listOfObjects addObject:at];
}

[tableView reloadData];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *identifier=@"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"identifier"];
}
classifiedimage=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 80)];
[cell.contentView addSubview:classifiedimage];
NSString *str;
str=att.classimage;
if(str==nil) {
classifiedimage.image=[UIImage imageNamed:@"image.png"];
} else{
url=@"My url";
NSString *addurl=[url stringByAppendingString:str];
classifiedimage.image = [UIImage imageNamed:addurl];
}
return cell;
}

最佳答案

你可以试试这个,用于在 cellForRowAtIndexPath 方法中异步加载图像,这里我获取图像的 url 并使用延迟加载。

dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(concurrentQueue, ^{

dispatch_async(dispatch_get_main_queue(), ^{

NSString *imageStr=[@"urlLink" stringByAppendingString:[populerPostImageArray objectAtIndex:indexPath.row]];

[cell.myImgView setImageWithURL:[NSURL URLWithString:imageStr] placeholderImage:[UIImage imageNamed:@"nopic.png"]];
});
});

关于ios - 使用 GCD 在 UITableviewCell 中异步加载和缓存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21154231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com