iOS開發-進階:最新版SDWebImage的使用
文章轉自: http://www.cocoachina.com/ios/20141212/10622.html
我之前寫過一篇部落格,介紹快取處理的三種方式,其中最難,最麻煩,最佔記憶體資源的還是圖片快取,最近做的專案有大量的圖片處理,還是採用了SDWebImage來處理,但是發現之前封裝好的程式碼報錯了。研究發現,是我用了新版的SDWebImage,好多方法都變了。
現在把程式碼貼出來,供大家參考。尤其是新手,看完這篇部落格,圖片快取so easy。最後有demo供大家下載,先學習。
第二步,在需要的地方匯入標頭檔案
1 |
#import "UIImageView+WebCache.h" |
第三步,呼叫sd_setImageWithURL:方法快取圖片,注意,這就是新版本的新方法,舊方法是setImageWithURL:。下面將幾個方法都介紹一下。
1. sd_setImageWithURL:
1 2 |
//圖片快取的基本程式碼,就是這麼簡單
[self.image1 sd_setImageWithURL:imagePath1];
|
2. sd_setImageWithURL: completed:
1 2 3 4 5 6 |
//用block 可以在圖片載入完成之後做些事情
[self.image2 sd_setImageWithURL:imagePath2 completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@ "這裡可以在圖片載入完成之後做些事情" );
}];
|
3. sd_setImageWithURL: placeholderImage:
1 2 |
//給一張預設圖片,先使用預設圖片,當圖片載入完成後再替換 [self.image1 sd_setImageWithURL:imagePath1 placeholderImage:[UIImage imageNamed:@ "default" ]];
|
4. sd_setImageWithURL: placeholderImage: completed:
1 2 3 4 5 6 |
//使用預設圖片,而且用block 在完成後做一些事情
[self.image1 sd_setImageWithURL:imagePath1 placeholderImage:[UIImage imageNamed:@ "default" ] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@ "圖片載入完成後做的事情" );
}];
|
5. sd_setImageWithURL: placeholderImage: options:
1 2 3 |
//options 選擇方式
[self.image1 sd_setImageWithURL:imagePath1 placeholderImage:[UIImage imageNamed:@ "default" ] options:SDWebImageRetryFailed];
|
其他就不一一介紹了,oc是自文件語言,看方法名就知道幹什麼的了。除了帶options選項的方法,其他的方法都是綜合儲存,也就是記憶體快取和磁碟快取結合的方式,如果你只需要記憶體快取,那麼在options這裡選擇SDWebImageCacheMemoryOnly就可以了。
如果不想深入瞭解,到這裡你已經可以用SDWebimage進行圖片快取了,接下來我要解釋options的所有選項,以及SDWebImage內部執行流程。
一、options所有選項:
1
2
3
4
相關推薦iOS開發-進階:最新版SDWebImage的使用文章轉自: http://www.cocoachina.com/ios/20141212/10622.html 我之前寫過一篇部落格,介紹快取處理的三種方式,其中最難,最麻煩,最佔記憶體資源的還是圖片快取,最近做的專案有大量的圖片處理,還是採用了SDWebIma 《iOS開發進階》書籍目錄archive 憑證 修改 工具 core serial 第二部分 破解 uilabel 第一部分:iOS開發工具 第二部分:iOS開發實踐 第10章 理解內存管理 10.1 引用計數 10.1.1 什麽是引用計數,原理是什麽 10.1.2 我們為什麽需要引用計數 10 《iOS開發進階》閱讀總結1.引用計數的作用 物件A向物件B傳遞引數物件M ,物件M可能成為物件B的成員變數,也可能只是臨時使用,如果不用引用計數控制,則無法在正確的時間釋放物件M。 案例一:物件A將物件M傳遞給物件B後 Reveal的使用--整理自唐巧的《iOS開發進階》1.下載一個正版的reveal來安裝。 2.開啟終端,輸入vim ~/.lldbinit建立一個名為.lldbinit的檔案,然後將如下內容輸入檔案中 command alias reveal_load_sim expr (void*)dlopen("/Applicat iOS開發進階-使用多個StoryBoard劃分專案前言:在實際來發中,作者一般都是使用純程式碼的方式進行開發,國內很多開發者都喜歡使用純程式碼進行開發,一方面是程式碼可維護性比較高,另一方面也是因為StoryBoard團隊協作的詬病。不過如果把一個專案拆分為多個StroyBoard,不同的人負責不同的模組 iOS開發-進階:被誤解的MVC和被神化的MVVM(作者:唐巧)作者 唐巧 釋出於 2015年11月1日 | 被誤解的 MVC MVC 的歷史 MVC,全稱是 Model View Controller,是模型 (model)-檢視 (view)-控制器 (controller) 的縮寫。它表示的是一種常見的客戶端軟 iOS開發-進階:MOV格式視訊轉MP4格式AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:sourceUrl options:nil]; NSArray *compatiblePresets = [AVAssetExportSession exportP iOS開發-進階:音訊播放、錄音、視訊播放、拍照、視訊錄製轉自: http://www.cnblogs.com/kenshincui/p/4186022.html#audioRecord 文章太長了, 如果我這裡寫的質量不好, 請參考原文; 概覽 隨著移動網際網路的發展,如今的手機早已不是打電話、發簡訊那麼 iOS開發-進階:開啟Remote notifications需要在Xcode 中修改應用的 Capabilities 開啟Remote notifications,請參考下圖: 修改通知處理函式 當註冊了Backgroud Modes -> Remote notifications 後,notification 處理 iOS開發-進階:瀑布流基本實現文章轉自: http://www.jianshu.com/p/78830bdb04a9 一、瀑布流設計方案 不可取.png 過於複雜.png 最優方案.png 二、瀑布流設計思路分析 1、自定義流水佈局中,指定滾動方向、預設列數、行間距、列間距、以及 iOS開發進階-UITapGestureRecognizer使用技巧手勢互動是iOS開發中用的比較多的一個類,用途無處不在,這裡面也衍生了很多的需求和用法,UIGestureRecognizer很強大,它的子類包括很多,不過想要更完美的使用它,就需要了解它的底層原理和和一些特殊情況下的處理辦法,本文主要介紹UITapGestur iOS開發-進階:JS與OC的互動在移動應用的專案中, web 相比原生應用有如下優點: 版本可以隨時更新, 效率高;可動態配置要展示的資料, 及資料來源.原生應用中, 如果一個頁面的展示, 需要多次呼叫不同的網路請求, 並且, 上一次請求的結果是下一次請求的引數, 這樣按順序呼叫網路並且等待網路返回的資 iOS開發-進階:JPush設定標籤與別名的API標籤與別名 API (iOS) 功能說明 溫馨提示,設定標籤別名請注意處理call back結果。 只有call back 返回值為 0 才設定成功,才可以向目標推送。否則伺服器 API 會返回1011錯誤。所有回撥函式都在主執行緒執行。 提供幾個相關 AP ios開發進階之多執行緒01 執行緒 GCD一 多執行緒基礎 什麼是程序? 程序是指在系統中正在執行的一個應用程式。 每個程序之間是獨立的,每個程序均執行在其專用且受保護的記憶體空間內。 什麼是執行緒? 1個程序要想執行任務,必須得有執行緒(每1個程序至少要有1條執行緒)。 1個執行緒中任務的執行 【原】iOS開發進階(唐巧)讀書筆記(二)第三部分:iOS開發底層原理 1、Objective-C物件模型 1.1 isa指標 NSObject.h部分程式碼: NS_ROOT_CLASS @interface NSObject <NSObject> { Class isa; } objc.h部分程式碼: typedef stru python3-開發進階 heapq模塊(如何查找最大或最小的N個元素)div lam 優勢 排序 portfolio res 函數 多個 items 一、怎樣從一個集合中獲得最大或者最小的 N 個元素列表? heapq 模塊有兩個函數:nlargest() 和 nsmallest() 可以完美解決這個問題。 import heap 移動端web開發進階page 提升 最終 好玩的 ini 進階 body user hang posted @ 2014-11-24 20:09 vajoy 閱讀(4708) 評論(12) 編輯 收藏 三個月前曾寫過一篇跨終端響應式頁面設計入門的博客,上了博客園頭條也得到了不少關註 Java開發進階之路為我 變量 kafka 自然 ges 想想 javaweb 目前 沒有 背景一 我接觸Java開發已經一年多了了。 從剛開始生澀地接觸語法,惹得編譯器報各種語法錯誤;到接觸OOD的思想,封裝、繼承、多態,懵懵懂懂地聽說著它們;再到學習Web開發,想著這些也許並不重要,實際用 ESP32搭建3.ubuntu14.04下搭建esp32開發環境 (最新版)終端 pat 權限 技術 實例 為我 tro component 直接 硬件為樂鑫出品的ESP32一款集成了wifi和藍牙的集成模塊。 1.首先ctrl+alt+t打開終端,sudo -s選擇用root權限登陸 。 2. 輸入指令:sudo apt-get install Python學習----第七模塊筆記(Web開發進階之Django數據庫操作)long 機制 idt 4.5 gen git 表之間 protoc 小數 4、Django ORM 4.1、連接數據庫 創建Django工程後運行該工程,會在工程根目錄下創建db.sqlite3文件,為Django自帶的sqlite3數據庫(Django自帶的功能也需要數 |