关闭

iOS经典讲解之UIImage初始化一张图片的方法及优缺点

标签: ios开发uiimage加载图片
1970人阅读 评论(0) 收藏 举报
分类:


作者:Loving_iOS

转载请标明出处:http://blog.csdn.net/loving_ios/article/details/49948539

方法一、

UIImage *image = [UIImage imageNamed:@"test.png"];

这个方法创建的图片是从缓存里面获取的,先在缓存里查看,看是不是有这个图片,没有的话见图片添加到缓存再使用。有的话直接使用缓存里面的。在程序中,如果这个图片要在多个地方使用的话,建议使用这个方法。缺点是:一旦加入到缓存中就一直占用内存,不能被释放掉。

方法二、

//读取本地图片路径

NSString *imagePath=[NSString stringWithFormat:@"%@/Documents/

%@.jpg",NSHomeDirectory(),@"test"];

[UIImage imageWithContentsOfFile:imagePath];

从手机本地读取,比较第一种方式,这个是直接加载图片的,图片不需要的时候,可以release掉。所以建议在使用重复率低的地方使用这种方法。

方法三、

// 下面的这种方式会出现卡线程的情况,所以建议在子线程中操作
// imageWithData: data

NSURL *url = [NSURL URLWithString:@“http://e.picphotos.baidu.com/album/s%3D550%3Bq%3D90%3Bc%3Dxiangce%2C100%2C100/sign=f51d2708cb11728b342d8c27f8c7b2f3/bba1cd11728b47109d0f5555c5cec3fdfc032302.jpg?referer=f55e30e2d71373f0ac285aaf8d00&x=.jpg"];

UIImage *image2 = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];

需要注意的是,如果imageWithData:是同步网络请求,如果在主线程直接使用的话,会卡主线程,因此一般不会在主线程中直接使用,而是采用异步网络请求获得data的值。




1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:90486次
    • 积分:1439
    • 等级:
    • 排名:千里之外
    • 原创:47篇
    • 转载:8篇
    • 译文:1篇
    • 评论:9条
    博客专栏
    文章分类
    最新评论