iOS多图片下载
2023-09-11 14:18:58 时间
1 iOS多图片下载、在cell里面下载图片、做了缓存优化。 2 3 (app.icon是图片地址) 4 5 // 先从内存缓存中取出图片 6 UIImage *image = self.images[app.icon]; 7 if (image) { // 内存中有图片 8 cell.imageView.image = image; 9 } else { // 内存中没有图片 10 // 获得Library/Caches文件夹 11 NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]; 12 // 获得文件名 13 NSString *filename = [app.icon lastPathComponent]; 14 // 计算出文件的全路径 15 NSString *file = [cachesPath stringByAppendingPathComponent:filename]; 16 // 加载沙盒的文件数据 17 NSData *data = [NSData dataWithContentsOfFile:file]; 18 19 if (data) { // 直接利用沙盒中图片 20 UIImage *image = [UIImage imageWithData:data]; 21 cell.imageView.image = image; 22 // 存到字典中 23 self.images[app.icon] = image; 24 } else { // 下载图片 25 [self.queue addOperationWithBlock:^{ 26 // 下载图片、多线程 27 NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:app.icon]]; 28 UIImage *image = [UIImage imageWithData:data]; 29 30 [NSThread sleepForTimeInterval:1.0]; 31 32 // 回到主线程显示图片 33 [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 34 cell.imageView.image = image; 35 }]; 36 37 // 存到字典中 38 self.images[app.icon] = image; 39 // 将图片文件数据写入沙盒中 40 [data writeToFile:file atomically:YES]; 41 }]; 42 }
相关文章
- iOS用户体验之-导航之道
- 《iOS9开发快速入门》——第1章,第1.1节iOS 9新特性
- 《iOS组件与框架——iOS SDK高级特性剖析》——第6章,第6.1节示例应用简介
- iOS CocoaPods安装和使用图解
- ios的NSMutableString用法
- ios图片轮播效果
- Visual Studio Code现在支持iOS Web应用调试了
- [iOS Reverse]logify日志追踪,锁定注入口-控制台查看
- iOS 线上版本图片资源格式的问题导致的闪退
- ios端,input框,汉字输入不上问题
- Unity 之 代码获取IOS设备型号 -- 做分辨率适配
- iOS语言本地化,中文显示
- iOS开发 - 蓝牙学习的总结