zoukankan      html  css  js  c++  java
  • iOS -根据网络状态加载图片

    #import <UIImageView+WebCache.h>
    #import "SDWebImage.h"
    #import <AFNetworking.h>
    
    /** 小图 */
    @property (nonatomic, copy) NSString *image0;
    /** 中图 */
    @property (nonatomic, copy) NSString *image2;
    /** 大图 */
    @property (nonatomic, copy) NSString *image1;
    
    // 占位图片
        UIImage *placeholder = nil;
        // 根据网络状态来加载图片
        AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];
        // 获得原图(SDWebImage的图片缓存是用图片的url字符串作为key)
        UIImage *originImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:topic.image1];
        if (originImage) { // 原图已经被下载过
            self.imageView.image = originImage;
        } else { // 原图并未下载过
            if (mgr.isReachableViaWiFi) {
                [self.imageView sd_setImageWithURL:[NSURL URLWithString:topic.image1] placeholderImage:placeholder];
            } else if (mgr.isReachableViaWWAN) {
    #warning downloadOriginImageWhen3GOr4G配置项的值需要从沙盒里面获取
                // 3G4G网络下时候要下载原图
                BOOL downloadOriginImageWhen3GOr4G = YES;
                if (downloadOriginImageWhen3GOr4G) {
                    [self.imageView sd_setImageWithURL:[NSURL URLWithString:topic.image1] placeholderImage:placeholder];
                } else {
                    [self.imageView sd_setImageWithURL:[NSURL URLWithString:topic.image0] placeholderImage:placeholder];
                }
            } else { // 没有可用网络
                UIImage *thumbnailImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:topic.image0];
                if (thumbnailImage) { // 缩略图已经被下载过
                    self.imageView.image = thumbnailImage;
                } else { // 没有下载过任何图片
                    // 占位图片;
                    self.imageView.image = placeholder;
                }
            }
        }
  • 相关阅读:
    ubuntu 安装chrome浏览器
    ubuntu下Xmodmap映射Esc和Ctrl_L
    ubuntu 设置主屏和副屏
    maven 第一次运行报错
    Intellij Idea 配置并发布tomcat项目
    Nginx跨域设置
    Inotify+rsync实现实时数据同步
    Ubuntu-18.04设置开机启动脚本
    CentOS开机自启动/etc/rc.local不执行的解决办法
    ELK之使用kafka作为消息队列收集日志
  • 原文地址:https://www.cnblogs.com/StevenHuSir/p/10119930.html
Copyright © 2011-2022 走看看