IOS 網路淺析-(六 網狀圖片擷取之三方SDWebImage-master),
網狀圖片擷取是大多數app所能用到的,由於實際app開發中原生api很少用到,在這裡就先不介紹了,以後有時間會給大家介紹。這篇文章會給大家介紹一個三方-SDWebImage-master。SDWebImage-master 是一個非常強大的三方。今天給大家主要講一些主要功能。其他功能可以下載下來自己琢磨琢磨。
*溫馨提示:SDWebImage-master可以在github上下載。*
當需要應用SDWeb時把檔案夾裡的SDWebImage檔案夾放入工程裡。
在需要使用網路擷取圖片的檔案裡進入標頭檔#import "UIImageView+WebCache.h"即可使用相應的api。
首先最基本的方法展示(僅擷取圖片)
代碼:
//// ViewController.m// CX-SDWebImage-master//// Created by ma c on 16/3/18.// Copyright © 2016年 xubaoaichiyu. All rights reserved.//#import "ViewController.h"#import "UIImageView+WebCache.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; NSString * urlString = [NSString stringWithFormat:@"http://localhost/tupian.jpg"]; NSURL * url = [NSURL URLWithString:urlString]; UIImageView * imageView = [[UIImageView alloc]init]; imageView.frame = CGRectMake(0, 20, CGRectGetWidth(self.view.frame), 300); [imageView sd_setImageWithURL:url]; [self.view addSubview:imageView]; }@end
在很多情況下由於網路的關係,圖片無法下載,這是會存在留白現象,這將會是一種很不好的app體驗,因此,為瞭解決這一弊端,此三方還有佔位圖片(在下載圖片的時候,此圖片心事出來。)
代碼:
//// ViewController.m// CX-SDWebImage-master//// Created by ma c on 16/3/18.// Copyright © 2016年 xubaoaichiyu. All rights reserved.//#import "ViewController.h"#import "UIImageView+WebCache.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; NSString * urlString = [NSString stringWithFormat:@"http://localhost/tupian.jpg"]; NSURL * url = [NSURL URLWithString:urlString]; UIImageView * imageView = [[UIImageView alloc]init]; imageView.frame = CGRectMake(0, 20, CGRectGetWidth(self.view.frame), 300); [imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"圖片名稱"]]; [self.view addSubview:imageView]; }@end
依舊是有些時候(我也不知道為什麼會有這麼多有些時候)下載完圖片需要某些操作,因此block是一種很不錯的選擇。
代碼:
//// ViewController.m// CX-SDWebImage-master//// Created by ma c on 16/3/18.// Copyright © 2016年 xubaoaichiyu. All rights reserved.//#import "ViewController.h"#import "UIImageView+WebCache.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; NSString * urlString = [NSString stringWithFormat:@"http://localhost/tupian.jpg"]; NSURL * url = [NSURL URLWithString:urlString]; UIImageView * imageView = [[UIImageView alloc]init]; imageView.frame = CGRectMake(0, 20, CGRectGetWidth(self.view.frame), 300); [imageView sd_setImageWithURL:url completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { NSLog(@"%@",image); //枚舉 NSLog(@"%ld",(long)cacheType); NSLog(@"%@",imageURL); }]; [self.view addSubview:imageView]; }/* 結果 2016-03-18 13:12:18.091 CX-SDWebImage-master[4626:283982] <UIImage: 0x7fe8a3f0d900>, {250, 250} 2016-03-18 13:12:18.092 CX-SDWebImage-master[4626:283982] 1 2016-03-18 13:12:18.092 CX-SDWebImage-master[4626:283982] http://localhost/tupian.jpg */@end
再接著...
很多時候我們查看圖片,也就是下載圖片的時候,圖片上有