国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

一種頭像緩存策略

2019-11-14 18:09:04
字體:
供稿:網(wǎng)友

許多 App 都有用戶系統(tǒng),不論是自己實(shí)現(xiàn)還是使用第三方,大概都需要顯示用戶的頭像。比較常見的情景下,頭像會(huì)在某些列表里出現(xiàn),例如聯(lián)系人列表、消息列表等。

雖然頭像也是圖像,但相比于普通圖片,我們對(duì)頭像有更高的要求。

頭像的原始圖片可能有各種尺寸,但在 App 里,我們很可能需要某種固定樣式的頭像,例如正方形或者圓形。如果我們使用通用的圖片緩存工具如 SDWebImageKingfisher 等,那么還需要自己做圖片的裁剪和加工。如果直接用 UIImageView 來縮小,圖片細(xì)節(jié)就會(huì)變得過于“銳利”,影響觀看。

進(jìn)一步,一個(gè) App 里可能不只有一種頭像樣式。比如某些場(chǎng)景里要有大頭像,某些要用小頭像,某些要用原始尺寸的頭像;或者某些場(chǎng)景里要用正方形頭像,某些場(chǎng)景里要用圓角矩形頭像,不一而足。注意:?jiǎn)渭冇?layer.cornerRadius 或 CALayer 來 mask 都會(huì)導(dǎo)致列表的滑動(dòng)性能問題,因此不考慮。

如果要做優(yōu)化,我們當(dāng)然希望這些不同樣式的小頭像能夠存儲(chǔ)在本地,不用再?gòu)木W(wǎng)絡(luò)獲取再裁減或處理樣式。一來減少不需要的流量消耗,二來提高頭像載入速度,用戶體驗(yàn)自然會(huì)更好。

基于上述分析,我們來設(shè)計(jì)一個(gè)頭像緩存系統(tǒng)。它的目標(biāo)是快速地獲取并緩存有樣式的頭像圖片,并能比較容易地集成到已有項(xiàng)目中。

一些前提:

  1. 頭像的圖片 URL 唯一,即不同的頭像有不同的 URL。如果用戶換了頭像,那么新頭像 URL 和舊的不一樣;
  2. 頭像是公開資源,不需要做驗(yàn)證即可下載。

好了,我們來做一做思維游戲

首先,已有的用戶模型可能為:

struct User {    let userID: String    let username:

主站蜘蛛池模板:
绥中县|
桂平市|
会泽县|
贞丰县|
墨玉县|
昭苏县|
津市市|
霍山县|
斗六市|
洪江市|
措美县|
凤庆县|
台南县|
凯里市|
淄博市|
绍兴市|
金溪县|
高淳县|
临猗县|
皋兰县|
乐安县|
昭通市|
莱西市|
沅陵县|
巴中市|
噶尔县|
独山县|
广灵县|
望都县|
东乌珠穆沁旗|
灵川县|
内江市|
黄平县|
美姑县|
曲阜市|
鸡东县|
芒康县|
霞浦县|
增城市|
加查县|
雷州市|