iOS UITabbar圖標使用網絡請求以及解決網絡圖片模糊/馬賽克問題

有時間再把完整demo 傳下~??????????????????
難點1.UITabbar是系統控件,所以并不能像UIButton等控件那么方便的去設置網絡圖片
難點2.UITabbar設置圖片如果用本地圖片,我們本地圖片一般都會有@2x@3x圖來滿足retina屏,避免大屏下模糊問題,但是使用網絡圖片就沒這么簡單,所表現的問題就是網絡圖片比如是 75px X 75x,下載完后直接賦值后 ``UITabbar上的圖標的寬高居然是75 X 75```,也就是說 1個點 顯示了 1個像素,自然就馬賽克了

難點1解決思路:
UITabbar默認加載本地圖片,網絡請求獲取的圖片的url后使用SDWebImage下載圖片資源,下載完成后得到 UIImage 對象,再使用UIImage對象對圖標進行更換

難點2解決思路:
辦法1.在使用網絡圖片時候,有一個規律,如果你的圖片url路徑帶有@3xSDWebImage下載完成后得到的UIImage對象的size屬性則是原來圖片像素大小的1/3.0,簡單說就是只要保持網絡圖片的文件名也按照@2x@3x來命名即可,因為SDWebImage緩存圖片到內存和本地文件名也應該保持了@2x/@3x的特征(實際只需要@3x即可,@2x系統會自行縮放)

辦法2.自己用網絡請求下載圖片,然后存入沙盒環境時更換圖片名稱,自行添加@3x

附:UI設計標準
標準 tab bars
75px × 75px (25pt × 25pt @3x)
50px × 50px (25pt × 25pt @2x)

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容