美文网首页
根据网络环境来加载图片

根据网络环境来加载图片

作者: 要加油啊小和尚 | 来源:发表于2018-01-19 15:46 被阅读0次

    网络环境wifi使用高清图,流量使用缩略图

    一进来,wifi环境,通过sd下载大图,存入沙盒,当再次使用切换为流量时,下载小图,这样是不合理的,既然曾经下载过,不管是流量还是wifi还是断网,沙盒中有直接取出来就行了,所以首先检测沙盒中有没有东西

    sd的沙盒对象中,一个url对应一个image,key就是url

    1.在AppDelegate.m中开启监控网络

    导入AFNetworking.h

    [[AFNetworkReachabilityManager sharedManager] startMonitoring];

    2.

    UIImage *placeholder = nil;

        //根据网络状态来加载数据

        AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

        //从沙盒中获得大图

        UIImage *originImage = [[SDImageCache sharedImageCache] imageFromCacheForKey: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){

                [self.imageView sd_setImageWithURL:[NSURL URLWithString:topic.image0] placeholderImage:placeholder];

            }else{

                //没有网络 显示占位图片

                UIImage *thumbnailImage = [[SDImageCache sharedImageCache] imageFromCacheForKey:topic.image0];

                if (thumbnailImage) {//缩略图已经被下载过

                    self.imageView.image = thumbnailImage;

                }else{

                    //没有下载过任何图片

                    //占位图片

                    self.imageView.image = placeholder;

                }

            }

        }

    由于这个功能经常要用,所以给它抽取成分类的方法,给UIImageView增加一个方法,先要判断好这个方法是干嘛的,给谁用的,给谁用就设置为谁的分类,因为这个分类的对象会调用这个方法

    这个方法是用来给imageView设置图片的

    相关文章

      网友评论

          本文标题:根据网络环境来加载图片

          本文链接:https://www.haomeiwen.com/subject/euhooxtx.html