【问题标题】:UITableViewCell placeholder imageUITableViewCell 占位符图片
【发布时间】: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");。而且我看到,这段代码每次都会调用,当单元格变得可见时(在它可见之后,消失并再次变得可见)

【问题讨论】:

    标签: ios uitableview afnetworking


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。你说的对。我禁用了网络,并尝试上下滚动我的 tableView。调用成功块,图像没有消失。
    • 只有删除应用才会删除缓存。
    • @iOSEnthusiatic:这不是真的,如果出现存储空间不足的问题,缓存将被清除。届时操作系统会自动清除缓存
    • 我不能发布它?例如,如果我有 VC_A 和 VC_B,则在 VC_B 中我有图像加载。 VC_A > VC_B > VC_A(vc_b 已释放)所有 VC_B 图像仍在缓存中吗?
    • @Arthur,是的,图片将在缓存中。
    猜你喜欢
    • 2012-02-17
    • 2022-01-27
    • 1970-01-01
    • 2015-06-27
    • 2021-09-18
    • 2020-09-07
    • 2016-12-02
    • 1970-01-01
    • 2016-03-06
    相关资源
    最近更新 更多