我正在开发iOS应用程序。并通过JSON获取图像并在tableview上显示。使用此方法dispatch_async(kBgQueue, ^{...
和图像显示在表格视图上,但所有图像显示在一个单元格上并自动回收。图像可以在一段时间后更改,也可以使用占位符图像。使用两个字符串显示图像一个字符串可用于图像名称,第二个字符串可用于URL。然后连接字符串以在集合视图中显示相同问题的图像。在tableview和集合视图中快速显示图像的任何其他方法
我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
mycell=[tableView dequeueReusableCellWithIdentifier:@"cell"];
UILabel *mylabel = (UILabel *)[mycell viewWithTag:100];
NSDictionary *dic=[str objectAtIndex:indexPath.row];
GRLanguage *sharedManager = [GRLanguage sharedManager];
if ([sharedManager.LanguageCode isEqual:@"hi"]) {
mylabel.text=[dic objectForKey:@"hindi_name"];
}else if ([sharedManager.LanguageCode isEqual:@"pa"])
{
mylabel.text=[dic objectForKey:@"punjabi_name"];
}else
{
mylabel.text=[dic objectForKey:@"name"];
}
[mycell setBackgroundColor:[UIColor clearColor]];
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"back copy.png"]];
self.tableview.backgroundView =img;
dispatch_async(kBgQueue, ^{ //Using For Lazy Loading
UIImageView *imagetlt = (UIImageView *)[mycell viewWithTag:1];
NSString *image =[dic objectForKey:@"image_path"];
NSString *path=@"http://webapp.opaxweb.net/images/";
path=[path stringByAppendingString:image];
NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:path]];
if (image == nil) {
[imagetlt setImage:[UIImage imageNamed:@"rel_circle.png"]];
}else
{
dispatch_async(dispatch_get_main_queue(), ^{
// UITableViewCell*img = (id) [tableView cellForRowAtIndexPath:indexPath];
imagetlt.image = [UIImage imageWithData: imageData];
});
}
});
return mycell;
}