SDWebImage使用及原始碼分析
SDWebImage
1.SDWebImage框架的分析
SDWebImageManager管理者
//單例類方法,該方法提供一個全域性的SDWebImageManager例項
+ (SDWebImageManager *)sharedManager;
//核心方法
- (id)downloadImageWithURL:(NSURL *)url
options:(SDWebImageOptions)options
progress:(SDWebImageDownloaderProgressBlock)progressBlock
completed:(SDWebImageCompletionWithFinishedBlock)completedBlock;
使用:
- (void)sd_setImageWithURL:(NSURL *)url;
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options completed:(SDWebImageCompletionBlock)completedBlock;
[_bookImg sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.baidu.com"]] placeholderImage:[UIImage imageNamed:@"123.PNG"] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
NSLog(@"%f",1.0 * receivedSize/expectedSize);//列印下載進度
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@"回撥返回快取型別,0沒有快取?1記憶體快取?2磁碟快取?%zd",cacheType);//列印快取型別
}];
//options列舉引數選項詳細, 傳0為預設
typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) {
//預設情況下,url在下載失敗後,會加入黑名單,不會再次下載,使用該引數,url在下載失敗後,不會加入黑名單,會再次下載
SDWebImageRetryFailed = 1 << 0, //失敗後重新下載
//預設情況下,UI互動時也會啟動圖片下載,使用該引數,會推遲到滾動檢視停止滾動後再繼續下載,NSURLConnection的網路下載事件監聽的執行迴圈模式是:NSDefaultRunloopMode
SDWebImageLowPriority = 1 << 1, //低優先順序下載
//禁止磁碟快取,只使用記憶體快取
SDWebImageCacheMemoryOnly = 1 << 2, //只使用記憶體快取
//圖片從上到下依次顯示,漸進式下載
SDWebImageProgressiveDownload = 1 << 3, //進度顯示
//重新下載圖片,不從記憶體,沙盒快取裡面去取,替換已有的快取,快取影像被重新整理會呼叫一次completedBlock, 並傳遞最終影像
SDWebImageRefreshCached = 1 << 4, //重新整理快取
//系統進入後臺,圖片繼續下載,如果後臺任務過期,下載任務取消
SDWebImageContinueInBackground = 1 << 5, //後臺下載
//處理儲存在NSHTTPCookieStore中的cookies
SDWebImageHandleCookies = 1 << 6, //處理cookies
//允許不信任的SSL證書,主要用於測試使用
SDWebImageAllowInvalidSSLCertificates = 1 << 7, //允許不信任的SSL證書
//優先於預設佇列中順序下載
SDWebImageHighPriority = 1 << 8, //優先下載
//延遲載入佔點陣圖片
SDWebImageDelayPlaceholder = 1 << 9, //延遲載入佔點陣圖片
//
SDWebImageTransformAnimatedImage = 1 << 10,
};
2.SDWebImage快取的概念
3.根據SDWebImage的快取概念, 做快取處理
4.下載超時和圖片的格式區分
5.SDWebImage的清理機制和記憶體的監聽
相關文章
- SDWebImage 原始碼分析Web原始碼
- SDWebImage原始碼解析Web原始碼
- SDWebImage 原始碼解析Web原始碼
- SDWebImage原始碼剖析(-)Web原始碼
- 原始碼閱讀:SDWebImage(一)——從使用入手原始碼Web
- SDWebImage原始碼解讀Web原始碼
- SDWebImage原始碼解析(三)Web原始碼
- SDWebImage原始碼解析(四)Web原始碼
- SDWebImage原始碼剖析(二)Web原始碼
- ThreadPoolExecutor的使用及原始碼分析thread原始碼
- drf 檢視使用及原始碼分析原始碼
- #BottomNavigationView使用及原始碼分析NavigationView原始碼
- SDWebImage原始碼閱讀(上)Web原始碼
- Spring事務原始碼分析專題(一)JdbcTemplate使用及原始碼分析Spring原始碼JDBC
- Laravel 中介軟體使用及原始碼分析Laravel原始碼
- 原始碼閱讀:SDWebImage(十一)——SDImageCache原始碼Web
- 原始碼閱讀:SDWebImage(五)——SDWebImageFrame原始碼Web
- 原始碼閱讀:SDWebImage(十六)——SDWebImageTransition原始碼Web
- 原始碼閱讀:SDWebImage(十四)——SDWebImageManager原始碼Web
- DRF檢視的使用及原始碼流程分析原始碼
- 【MyBatis原始碼分析】select原始碼分析及小結MyBatis原始碼
- SDWebImage(v3.7.6) 原始碼學習Web原始碼
- 原始碼閱讀:SDWebImage(八)——SDWebImageGIFCoder原始碼Web
- 原始碼閱讀:SDWebImage(九)——SDWebImageCodersManager原始碼Web
- 原始碼閱讀:SDWebImage(六)——SDWebImageCoderHelper原始碼Web
- 原始碼閱讀:SDWebImage(四)——SDWebImageCoder原始碼Web
- 原始碼閱讀:SDWebImage(二)——SDWebImageCompat原始碼Web
- 原始碼閱讀:SDWebImage(七)——SDWebImageImageIOCoder原始碼Web
- 原始碼閱讀:SDWebImage(十三)——SDWebImageDownloader原始碼Web
- 原始碼閱讀:SDWebImage(十五)——SDWebImagePrefetcher原始碼Web
- 原始碼閱讀:SDWebImage(十二)——SDWebImageDownloaderOperation原始碼Web
- 從SDWebImage原始碼中學到的Web原始碼
- SDWebImage原始碼解析之SDWebImageManager的註解Web原始碼
- 原始碼閱讀:SDWebImage(十七)——UIView+WebCacheOperation原始碼WebUIView
- 原始碼閱讀:SDWebImage(十八)——UIView+WebCache原始碼WebUIView
- 通俗易懂的SDWebImage原始碼解析(二)Web原始碼
- ReentrantLock解析及原始碼分析ReentrantLock原始碼
- ArrayMap詳解及原始碼分析原始碼