图片下载简单处理
2016-05-05 16:58
190 查看
- 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 从沙盒中读取用户的配置项:在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]; } } } }
相关文章推荐
- Windows下给Android app进行系统签名
- wireshark通过TCP抓包进行确认
- 用grunt搭建自动化的web前端开发环境-完整教程
- 打字
- 【深入理解JVM】:HotSpot垃圾收集器
- 0506团队项目-Scrum 项目1.0
- nginx 配置.json文件直接访问
- spring-从普通java类取得注入spring Ioc容器的对象的方案
- wordpress只有主页能访问,其他菜单不能访问 Custom Permalinks Return 404 Errors
- 整理-分类-朴素贝叶斯分类-垃圾邮件检测
- 【搜集,整理】Json与Java对象之间转换示例,详解
- 移动前端头部标签(HTML5 head meta)(转)
- MVC缓存
- InnoDB next-key locking
- c#与java的区别
- NSNotificationCenter 的使用详解
- 传入两个中文地点,解析成坐标点,并且在地图上显示出它们之间的路线图
- iOS 搜索功能的实现
- Spark在美团的实践
- C语言中.h和.c文件解析(非常精彩,一起分享)