在我的应用程序中,我在cellforrowatindexpath中加载了单元格的照片,但它在很长一段时间内需要主线程,当我滚动时,我的应用程序停止了一段时间。 我该怎么办?如果我添加异步线程,它会在每次滚动时调用它,并且可能有2个或更多相等的照片加载请求,这不是很好......有没有没有意大利面编码的想法?
答案 0 :(得分:2)
尝试SDWebImage框架
https://github.com/rs/SDWebImage
示例代码
- (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];
}
// Here we use the new provided sd_setImageWithURL: method to load the web image
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"Get each url from array and set it here using indexpath.row"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
cell.textLabel.text = @"My Text";
return cell;
}
它支持各种功能,如缓存等。