iOS实现图片边下载边显示
来源:互联网 发布:学页面美工要多少钱 编辑:程序博客网 时间:2024/05/22 10:48
iOS图片显示时使用Incremental方式解码就可以实现边下载边显示的效果,(SDWebImage没有使用这种方式,所以显示图片是一闪而出)。
具体做法是使用CGImageSoureceCreateIncremental(NULL)创建一个空的图片源,在下载图片时,每次获取到最新的Data时都将其更新到图片源并绘制,再更新UIImageView的图片。
代码如下:
#import "ViewController.h"
@interfaceViewController ()<NSURLSessionDataDelegate>
{
UIImageView *bgImageView;
NSMutableData *imageData;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
imageData = [NSMutableDatadata];
bgImageView = [[UIImageViewalloc]initWithFrame:self.view.bounds];
[self.viewaddSubview:bgImageView];
NSURLSession *session = [NSURLSessionsessionWithConfiguration:[NSURLSessionConfigurationdefaultSessionConfiguration]delegate:selfdelegateQueue:[NSOperationQueuemainQueue]];
NSURLSessionDataTask *task = [sessiondataTaskWithURL:[NSURLURLWithString:@"http://image155-c.poco.cn/mypoco/myphoto/20110117/00/20110117001006_1780564805.jpg"]];
[task resume];
}
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
{
UIImage *temImage =nil;
//拼接历史图片数据
[imageDataappendData:data];
//创建空图片空间
CGImageSourceRef emptySpace =CGImageSourceCreateIncremental(NULL);
//更新图片空间数据
CGImageSourceUpdateData(emptySpace, (CFDataRef)imageData,false);
//绘制图片
CGImageRef image =CGImageSourceCreateImageAtIndex(emptySpace, 0,NULL);
//CGImageRef -> UIImage
temImage = [UIImageimageWithCGImage:imagescale:1.0orientation:UIImageOrientationUp];
//释放图片空间
CFRelease(emptySpace);
//更新图片
[bgImageViewsetImage:temImage];
}
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
{
if (!error) {
NSLog(@"下载完成");
} else {
NSLog(@"下载发生错误");
}
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
- iOS实现图片边下载边显示
- iOS 如何边下载边显示图片
- ios--异步下载、显示图片
- iOS下载图片并显示进度
- VC++下载图片然后控件显示JPG图片的实现
- iOS 实现圆角图片显示
- android 图片加载之边下载边显示的讨论。
- IOS开发之---异步下载显示图片
- ios 图片的网络下载和显示(可缓存)
- ios--UIImage从网络下载、保存、显示图片
- android 下载 ios上传图片的角度显示问题
- mui H5+ 的dowload下载图片地址相同,ios下载一直显示旧图片
- 下载显示图片
- 图片显示+文件下载
- 实现表格列表显示图片名称,点击可下载
- httpClient及android 原生接口实现下载并显示图片
- 在WPF中实现图片一边下载一边显示
- 使用HttpURLConnection实现图片的下载与现显示
- python-numpy中nonzero()的用法
- LoadRunner11-遇到问题及解决办法
- activeMQ和spring进行整合
- 第十一周java作业--GUI常用组件和容器
- 正则表达式与相关工具
- iOS实现图片边下载边显示
- TP函数库function
- 启动虚拟机时提示我已移动或我已复制选项的详解
- 8位 16位 32位等几种DDR3或LPDDR3的PCB设计总结
- RDLC报表定义具有无法升级的无效目标命名空间
- Linux环境下Spring Boot项目内置Tomcat参数配置
- java习题
- 短线大盘正常震荡调整
- 看流畅python中的代码