本文主要是介绍iOS-网络图片下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1) 在ViewController.h里面关联一个imageview和一个button
@property (weak, nonatomic) IBOutletUIImageView *showImageView;
- (IBAction)loadImage:(id)sender;
(2)在ViewController.m里面
第一种方法:多线程异步下载网络图片(GCD)
- (IBAction)loadImage:(id)sender {
NSURL *url = [NSURLURLWithString:@"http://pica.nipic.com/2007-12-12/20071212235955316_2.jpg"];
dispatch_queue_t queue =dispatch_queue_create("loadImage",NULL);
dispatch_async(queue, ^{
NSData *resultData = [NSDatadataWithContentsOfURL:url];
UIImage *img = [UIImageimageWithData:resultData];
dispatch_sync(dispatch_get_main_queue(), ^{
self.showImageView.image = img;
});
});
}
第二种方法:
(同步下载网络图片 速度慢容易卡死 UI还可以用第三方的 EGOImageView和 SDWebImage实现异步网络图片的下载)
- (IBAction)loadImage:(id)sender {
NSURL *url = [NSURLURLWithString:@"http://pica.nipic.com/2007-12-12/20071212235955316_2.jpg"];
NSData *resultData = [NSDatadataWithContentsOfURL:url];
UIImage *img = [UIImageimageWithData:resultData];
self.showImageView.image = img;
}
第三种方法(异步 下载网络图片):
ViewController.h
@property(nonatomic,retain)NSMutableData *mutableData;
@property (weak, nonatomic) IBOutletUIImageView *showImageView;
- (IBAction)loadImage:(id)sender;
ViewController.m
- (IBAction)loadImage:(id)sender {
NSURL *url = [NSURLURLWithString:@"http://pica.nipic.com/2007-12-12/20071212235955316_2.jpg"];
NSMutableURLRequest *request = [[NSMutableURLRequestalloc] init];
[requestsetURL:url];
[requestsetHTTPMethod:@"GET"]; //设置请求方式
[request setTimeoutInterval:60];//设置超时时间
self.mutableData = [[NSMutableDataalloc] init];
[NSURLConnectionconnectionWithRequest:request delegate:self];//发送一个异步请求
}
#pragma mark - NSURLConnection delegate
//数据加载过程中调用,获取数据
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.mutableDataappendData:data];
}
//数据加载完成后调用
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
UIImage *image = [UIImageimageWithData:self.mutableData];
self.showImageView.image = image;
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"请求网络失败:%@",error);
}
这篇关于iOS-网络图片下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!