IOS第二十九天——HTTP下载一个图片

今天我们来简单的学习一下通过HTTP远程下载一个图片文件,并把它显示在ImageView上,这个不是什么难事儿。

首先新建一个空项目,然后添加一个ViewController类,同时附带xib。

然后拖拽一个按钮和一个ImageView进来,如下图所示:


然后为按钮添加action取名为downloadImg,为Image View添加outlet取名为imgView,接下来我们就要在downloadImg这个action的实现方法中加入如下代码:

//download img from url
- (IBAction)downloadImg:(id)sender
{
    NSError *error=nil;
    NSURL *url=[NSURL URLWithString:@"http://ww3.sinaimg.cn/mw690/51f76ed7jw1e3ohzmmnffj.jpg"];
    NSURLRequest *request=[[NSURLRequest alloc] initWithURL:url];
    NSData *imgData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
    UIImage *img=nil;
    if(imgData)
    {
        img=[UIImage imageWithData:imgData];
        imgView.image=img;
    }
}
OK,这样儿就完成了,运行一下看下效果,首先是程序刚打开的时候的效果:

然后是点击按钮之后的效果:

再然后就是图片文件下载完成之后的展示效果:

大家可以注意到在我们点击按钮之后,按钮变为蓝色一直等到图片下载完成并在ImageView上显示出来之前都是蓝色的,这就是同步下载方式,客户端发起请求,服务器端接收请求并解析http参数,在服务器端向客户端返回数据之前,客户端会一直阻塞等待返回结果,那么这种同步下载的方式的优点就是简单易用,几行代码就可以搞定了,缺点就是会阻塞,同时,根据网络状况的不同,等待的时间也会不确定。

本来想自己改为手动下载的方式,但是因为时间紧迫没改好,所以留到下次改,当然,大家也可以去github上看下SDWebImage这个项目,使用起来也是非常的方便,在此附上git地址,rs/SDWebImage

2013年06月04日,Eric.Tang 记


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值