zoukankan      html  css  js  c++  java
  • 第二十八篇、自定义的UITableViewCell上有图片需要显示,要求网络网络状态为WiFi时,显示图片高清图;网络状态为蜂窝移动网络时,显示图片缩略图

    1)SDWebImage会自动帮助开发者缓存图片(包括内存缓存,沙盒缓存),所以我们需要设置用户在WiFi环境下下载的高清图,下次在蜂窝网络状态下打开应用也应显示高清图,而不是去下载缩略图。

    2)许多应用设置模块带有一个功能:移动网络环境下仍然显示高清图。这个功能其实是将设置记录在沙盒中

    3)当用户处于离线状态时候,无法合理处理业务。

    - setItem:(CustomItem *)item
    {
        _item = item;
      // 占位图片
        UIImage *placeholder = [UIImage imageNamed:@"placeholderImage"];
        // 从内存沙盒缓存中获得原图
        UIImage *originalImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:item.originalImage];
        if (originalImage) { // 如果内存沙盒缓存有原图,那么就直接显示原图(不管现在是什么网络状态)
            [self.imageView sd_setImageWithURL:[NSURL URLWithString:item.originalImage] placeholderImage:placeholder];
        } else { // 内存沙盒缓存没有原图
            AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];
            if (mgr.isReachableViaWiFi) { // 在使用Wifi, 下载原图
                [self.imageView sd_setImageWithURL:[NSURL URLWithString:item.originalImage] placeholderImage:placeholder];
            } else if (mgr.isReachableViaWWAN) { // 在使用手机自带网络
                //     用户的配置项假设利用NSUserDefaults存储到了沙盒中
                //    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"alwaysDownloadOriginalImage"];
                //    [[NSUserDefaults standardUserDefaults] synchronize];
    #warning 从沙盒中读取用户的配置项:在3G4G环境是否仍然下载原图
                BOOL alwaysDownloadOriginalImage = [[NSUserDefaults standardUserDefaults] boolForKey:@"alwaysDownloadOriginalImage"];
                if (alwaysDownloadOriginalImage) { // 下载原图
                    [self.imageView sd_setImageWithURL:[NSURL URLWithString:item.originalImage] placeholderImage:placeholder];
                } else { // 下载小图
                    [self.imageView sd_setImageWithURL:[NSURL URLWithString:item.thumbnailImage] placeholderImage:placeholder];
                }
            } else { // 没有网络
                UIImage *thumbnailImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:item.thumbnailImage];
                if (thumbnailImage) { // 内存沙盒缓存中有小图
                    [self.imageView sd_setImageWithURL:[NSURL URLWithString:item.thumbnailImage] placeholderImage:placeholder];
                } else {
                    [self.imageView sd_setImageWithURL:nil placeholderImage:placeholder];
                }
            }
        }
    }
  • 相关阅读:
    springmvc入门&参数&注解
    springmvc_ssm Spring、SpringMVC、MyBatis集成
    spring-dbutils&注解
    如何快速进去 注册表
    数据库的导出 与导入 速度相当快的方法
    常见的问题:https://localhost:1158/em 无法打开
    卸载windows服务
    用语句创建 表空间、临时表空间、用户 等规则
    游标 根据目录号 操作用户 查看 对应得影像数
    根据 目录号 案卷号 用户名 查询 page 中 的条数
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5879446.html
Copyright © 2011-2022 走看看