關(guān)于朋友圈列表和微博列表的優(yōu)化方案總結(jié)

方案一:AutoLayout

1,autolayout 的第三庫用的是SDAutoLayout的同學(xué)多矮,可以使用這種方案

這里著重說下cell 里評論視圖的實現(xiàn)

3027680B-1384-4417-9CC2-0FBFAADCB3B2.png

1, 因為這部分的數(shù)據(jù)是不確定的蛾默,我之前的做法是重用的時候先刪除所有l(wèi)able 粪躬,然后根據(jù)model 數(shù)組袄友,重新創(chuàng)建lable 添加到cell 上殿托,這種方案非常不可取,而且滑動也比較卡頓剧蚣。

2支竹,SDAutoLayout 的demo 里用到了 label 重用的方法。它自定義了評論視圖 SDTimeLineCellCommentView,這個類里面創(chuàng)建commentLabelsArray 數(shù)組鸠按,用于存儲已經(jīng)創(chuàng)建的評論label 唾戚,當(dāng)重用時,如果評論數(shù)據(jù)的條數(shù)多于之前的(通過比較commentItemsArray數(shù)組和commentLabelsArray)待诅,那就繼續(xù)創(chuàng)建并添加到commentLabelsArray叹坦。如果少于之前的,就隱藏卑雁。然后在開始創(chuàng)建lable 和重用lable的時候募书,都需要重新綁數(shù)據(jù)和設(shè)置約束。测蹲,這種方案避免了頻繁的創(chuàng)建lable 莹捡,addSubView 和removeAllSubViews。

2扣甲,第三庫用的是Masonry篮赢,可以看看這種方案

demo里提供了兩種方案,主要是布局上的區(qū)別:
1琉挖,第一種是cell里嵌套tableview 启泣,使用masonry布局,加上HYBMasonryAutoCellHeight 的緩存高度
2示辈,第二種是將內(nèi)容視圖寥茫,九宮格圖片和評論視圖分開成,headview 和 cell 的方式

75E29DAD-BEA6-4AB4-9FCA-330842DF15E3.png

這種方案其實是將整個動態(tài)分成4個部分矾麻。文字和圖片是自定義的UITableHeaderFooterView纱耻,點贊部分是定義cell ,評論部分也是自定義cell 险耀,然后在viewForFooterInSection返回高度為10 的區(qū)尾視圖弄喘。這種方案需要注意就是點贊視圖和評論視圖是分開的,所以帶有小三角的背景圖片不是包含點贊視圖和評論視圖的甩牺,也就是說如果沒有點贊數(shù)據(jù)蘑志,評論cell 的背景是沒有小三角的,demo 里評論cell 的背景也是用的顏色,而不是圖片卖漫。

方案二:YYKit

1, 沒有用自動布局,用的是frame 布局
2,在拿到數(shù)據(jù)的時候就已經(jīng)計算好了布局羊始,model -> Layout 旱幼,其它的方法,可能是布局cell的時候突委,再去計算

方案三:VVeboTableViewDemo

方案四:AsyncDisplayKit

AsyncDisplayKit 是 Facebook 開源的一個用于保持 iOS 界面流暢的庫,他們自己實現(xiàn)一套異步布局和渲染的機制。它的學(xué)習(xí)成本有點大匀油,可以參考自己項目缘缚,酌情使用,下面是一些學(xué)習(xí)文檔:

方案五:Gallop

這個庫star 比較少纷跛,不過微信朋友圈Demo的滑動的效果很好,底層用的都是 CoreText,而且也用到了異步渲染喻括。

六唬血,這里說說自己在項目中遇到的一些問題

  • 1,我在項目中一開始的方案是xib 布局加 FDTemplateLayoutCell 緩存高度唤崭,富文本用的是TTTAttributedLabel拷恨,開發(fā)速度確實很快,但滑動效果不是很好,后來按照YYKit 中的demo 做了優(yōu)化浩姥,在拿到數(shù)據(jù)就計算了布局挑随,然后也將UILabel 換成了 YYLabel,棄用了autolayout 采用frame 布局勒叠。然后就是評論視圖采用的是SDAutoLayout demo 中的方案,滑動效果好了很多膏孟。
  • 2, 閃爍: Gallop 和 AsyncDisplayKit 在刷新的時候都會閃爍一下眯分。Gallop 在Demo 里給的解決辦法是先在當(dāng)前視圖控制器的view上添加一張截圖,刷新完之后再去掉柒桑。關(guān)于AsyncDisplayKit 的解決方法可以看看上面方案三的最后一篇文章弊决。
  • 3, 如果要實現(xiàn)像微博那樣的既有圖文混排,又有視頻播放的列表∑可以試試AsyncDisplayKit 与倡,它已經(jīng)提供了ASVideoNode 節(jié)點,用于在高速滑動的滾動列表嵌入視頻昆稿。
  • 4纺座,YYKit,VVeboTableViewDemo溉潭,Gallop 底層使用的都是 CoreText净响,可以看看這幾篇文章:
    http://blog.devtang.com/2015/06/27/using-coretext-1/
    CoreText實現(xiàn)圖文混排 http://www.reibang.com/p/6db3289fb05d
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市喳瓣,隨后出現(xiàn)的幾起案子馋贤,更是在濱河造成了極大的恐慌,老刑警劉巖畏陕,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件配乓,死亡現(xiàn)場離奇詭異,居然都是意外死亡惠毁,警方通過查閱死者的電腦和手機扰付,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仁讨,“玉大人羽莺,你說我怎么就攤上這事《椿恚” “怎么了盐固?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長丈挟。 經(jīng)常有香客問我刁卜,道長,這世上最難降的妖魔是什么曙咽? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任蛔趴,我火速辦了婚禮,結(jié)果婚禮上例朱,老公的妹妹穿的比我還像新娘孝情。我一直安慰自己,他們只是感情好洒嗤,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布箫荡。 她就那樣靜靜地躺著,像睡著了一般渔隶。 火紅的嫁衣襯著肌膚如雪羔挡。 梳的紋絲不亂的頭發(fā)上洁奈,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天,我揣著相機與錄音绞灼,去河邊找鬼利术。 笑死,一個胖子當(dāng)著我的面吹牛低矮,可吹牛的內(nèi)容都是我干的印叁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼商佛,長吁一口氣:“原來是場噩夢啊……” “哼喉钢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起良姆,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤肠虽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后玛追,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體税课,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年痊剖,在試婚紗的時候發(fā)現(xiàn)自己被綠了韩玩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡陆馁,死狀恐怖找颓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叮贩,我是刑警寧澤击狮,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站益老,受9級特大地震影響彪蓬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捺萌,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一档冬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桃纯,春花似錦酷誓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至驮配,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背壮锻。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工琐旁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人猜绣。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓灰殴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親掰邢。 傳聞我的和親對象是個殘疾皇子牺陶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件辣之、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,060評論 4 62
  • 2017.02.22 可以練習(xí)掰伸,每當(dāng)這個時候,腦袋就犯困怀估,我這腦袋真是神奇呀狮鸭,一說讓你做事情,你就犯困多搀,你可不要太...
    Carden閱讀 1,332評論 0 1
  • 今天終于休息啦雖然留作業(yè)了但我也寫完了康铭,寫完了作業(yè)惯退。光剩玩兒啦,真美呀从藤!昨天我忘了日記了催跪,我覺得一點兒都不好。以后...
    平凡一生123閱讀 89評論 0 0
  • 今天通過我們的早睡早起群制定了本月的兩個目標(biāo)呛哟,減肥和記英語單詞叠荠。下定決心是有些困難,掙扎了許久扫责,似乎聽到心里的那個...
    諾諾521閱讀 150評論 0 0
  • by:孤鳥差魚 別有誠意 也勿介懷 誠懇會帶來多大傷害
    孤鳥差魚閱讀 123評論 0 2