网络环境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设置图片的