如何在UITableView中向图像添加活动指示器?

时间:2013-03-11 04:10:43

标签: ios objective-c objective-c-blocks uiactivityindicatorview

我已创建自定义tableView并在其他类中使用自定义tableView类来显示tableView ..

我正在从服务器加载图片并在tableViewRow中显示..每个image都不同..

屏幕上只有10个图像中有7个会出现,当我向下滚动时,前3个图像会重复一段时间,当这些图像加载时,它会显示正确的图像..但是最初直到新图像显示出旧图像图像,我想放一个活动指示器来显示图像正在加载而不是旧图像..

我想在activity Indicator的位置添加image,直到image加载..

我的代码是......

self.tableViewX = tableView;
static NSString *simpleTableIdentifier = @"SimpleTableCell";
SimpleTableCell *cell = (SimpleTableCell *)[tableView1 dequeueReusableCellWithIdentifier:simpleTableIdentifier];
 if (cell == nil)
{
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
    {
NSString *imageURL = [NSString stringWithFormat: @"www.xyz.image.png"];
cell.thumbnailImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];
 });

请帮我提供一些示例代码..

1 个答案:

答案 0 :(得分:4)

您可以使用“AsyncImageView”类文件同步加载图像,并在图像加载时显示活动指示

您可以从以下链接下载“AsyncImageView”类文件: - https://www.dropbox.com/s/peazwjvky9fsjd7/Archive.zip

<。>在.m文件中导入AsyncImageView类

 #import "AsyncImageView.h" 
在indexpath方法

的tableview单元格中

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     static NSString *simpleTableIdentifier = @"SimpleTableCell";
     SimpleTableCell *cell = (SimpleTableCell *)[tableView1 dequeueReusableCellWithIdentifier:simpleTableIdentifier];
     if (cell == nil)
     {
           NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
      cell = [nib objectAtIndex:0];
     }
     NSString *imageURL = [NSString stringWithFormat: @"www.xyz.image.png"];
     AsyncImageView *async = [[AsyncImageView alloc]initWithFrame:CGRectMake(0, 0, width, height)];
     [async loadImageFromURL:[NSURL URLWithString:imageURL]];
     [cell.thumbnailImageView addSubview:async];
}

试试这个你的问题会解决。