UITableViewCell 占位符图片

Posted

技术标签:

【中文标题】UITableViewCell 占位符图片【英文标题】:UITableViewCell placeholder image 【发布时间】:2016-02-12 09:30:03 【问题描述】:

我正在使用 AFNetworking 为单元格占位符加载我的图像。这是我的代码示例。 (来自here的令牌)

NSURL *url = [NSURL URLWithString:daysWeather.weatherIconURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
UIImage *placeholderImage = [UIImage imageNamed:@"placeholder"];

__weak UITableViewCell *weakCell = cell;
[cell.imageView setImageWithURLRequest:request
                      placeholderImage:placeholderImage
                               success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) 
                                   NSLog(@"Load placeholder img");
                                   weakCell.imageView.image = image;
                                   [weakCell setNeedsLayout];

                                failure:nil];

return cell;

现在我有一个问题。这些图像是否每次都加载,当它变得可见时?如您所见,我在成功块中添加了NSLog(@"Load placeholder img");。而且我看到,这段代码每次都会调用,当单元格变得可见时(在它可见之后,消失并再次变得可见)

【问题讨论】:

【参考方案1】:

是的成功块每次调用。但是 AFNetworking 只会下载一次图像并将其保存在缓存中。一旦您再次请求相同的 URL 或图像,它将直接从缓存中加载图像(如果可用)。

另外,如果您不想在块中执行任何特定操作,则只需使用 setImageWithURL:placeholderImage

【讨论】:

谢谢。你说的对。我禁用了网络,并尝试上下滚动我的 tableView。调用成功块,图像没有消失。 只有删除应用才会删除缓存。 @iosEnthusiatic:这不是真的,如果出现存储空间不足的问题,缓存将被清除。届时操作系统会自动清除缓存 我不能发布它?例如,如果我有 VC_A 和 VC_B,则在 VC_B 中我有图像加载。 VC_A > VC_B > VC_A(vc_b 已释放)所有 VC_B 图像仍在缓存中吗? @Arthur,是的,图片将在缓存中。

以上是关于UITableViewCell 占位符图片的主要内容,如果未能解决你的问题,请参考以下文章

使用空占位符将图像插入幻灯片(PowerPoint)

Flutter 默认图片占位符

图片加载失败显示默认图片占位符

PowerPoint2010占位符

UITextField 无法将占位符居中并更改键盘颜色书写

python 建立CNN用的占位符,任意图片数