在App开发过程中,公司会在CDN或者OSS上存放图片素材,并统一管理。而我们只需要将其请求下来展示即可。把请求网上图片资源的时候,如果遇到网速慢的情况,一般我们的逻辑是用一张本地图片先载入,等到图片成功下载之后,再将页面中的图片进行替换。
SDWebImage(链接在此)是Github上一个开源的第三方库,专门用来处理网络图片加载的事件。因其强大的功能使其在iOS图片加载框架中非常流行。以下记录一下SDWebImage的用法和一些原理做一些我的理解。
1.添加到项目中
你可以把SDWebImage源文件下载下来,添加到工程中。也可以使用cocoapods管理(推荐)。在项目根目录创建一个Podfile文件,输入如下
platform :ios, '10.2'
target ‘Demo_SDImage’ do
use_frameworks!
pod "SDWebImage","~> 4.0"
end
之后,回到根目录 执行 pod install 进行安装。
2.使用
导入入第三方库之后,在项目中引入头文件
#import <SDWebImage/UIImageView+WebCache.h>
@interface ViewController : UIViewController
@property(nonatomic,strong)UIImageView* LM_image; //创建一个 UIImageView
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
// 初始化LM_image ,大小为 400 x 300 并添加到主视图
self.LM_image = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 400, 300)];
[self.view addSubview:self.LM_image];
}
使用 写一个download函数,下载图片
//下载前先用一张本地图片