如果我理解正确,您目前正在进行同步调用以下载 tableview 单元格图像。同步调用需要时间,并且您的屏幕/UITableView 变得对触摸事件没有响应。避免这种情况的技术称为延迟加载。
用于SDWebImage
延迟加载 tableview 图像。用法很简单,
#import <SDWebImage/UIImageView+WebCache.h>
...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:MyIdentifier] autorelease];
}
// Here we use the new provided setImageWithURL: method to load the web image
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
cell.textLabel.text = @"My Text";
return cell;
}
或者,您也可以参考Apple 示例代码自行实现图像的延迟加载。
希望有帮助!