我已创建自定义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]]];
});
请帮我提供一些示例代码..
答案 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];
}
试试这个你的问题会解决。