网络监听,cell不同状态图片加载

// AppDelegate.m 文件中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

// 监控网络状态

[[AFNetworkReachabilityManager sharedManager] startMonitoring];

}

// 以下代码在需要监听网络状态的方法中使用

AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

if(mgr.isReachableViaWiFi)     {// 在使用Wifi, 下载原图

}else{// 其他,下载小图

}

}

cell 完善版显示图片代码

- 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];

}elseif(mgr.isReachableViaWWAN) {// 在使用手机自带网络

//     用户的配置项假设利用NSUserDefaults存储到了沙盒中

//    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"alwaysDownloadOriginalImage"];

//    [[NSUserDefaults standardUserDefaults] synchronize];

#warning 从沙盒中读取用户的配置项:在3G\4G环境是否仍然下载原图

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];

}

}

}

}






你可能感兴趣的:(网络监听,cell不同状态图片加载)