我有一个 uitableview ,其中包含两个 UImage 的自定义单元格。 Logo 图像取自在线网站,这就是需要缓存图像的原因。加载图像到现在是这样的:
NSURL * imageURL = [NSURL URLWithString:[arra1 objectAtIndex:indexPath.row / 2]];
NSData * imageData = [NSData dataWithContentsOfURL:imageURL];
NSURL * imageURL2 = [NSURL URLWithString:[arra2 objectAtIndex:indexPath.row / 2]];
NSData * imageData2 = [NSData dataWithContentsOfURL:imageURL2];
cell.ima1.image = [UIImage imageWithData:imageData];
cell.ima2.image2 = [UIImage imageWithData:imageData2];
我从搜索中了解到,dataWithContentsOfURL 不是异步的,滚动时会花费很多时间。我尝试了几种方法,但我似乎无法找到正确的一种。这是我第一次缓存 UIImages ,我非常感谢详细的实现解释,这样我可以在完成工作的同时学习。
非常感谢
Best Answer-推荐答案 strong>
我使用这个库,非常完美
您只需要将 #import 到您的项目中,并且您还可以使用以下代码在下载图像时定义占位符:
- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)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;
}
它还缓存下载的图像并为您提供出色的性能。
希望对你有帮助!
关于ios - 使用来自 url 的 uitableview 缓存 UIImage,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/23215722/
|