tableView作為我們常用的一個(gè)空間,人們對(duì)它的滾動(dòng)流暢度的感覺是很明顯的,那么今天咱們一起聊聊怎么使UITableView的滾動(dòng)變的更加流暢
首先我們要知道都有哪些原因會(huì)是列表帶來卡頓感呢。
- 對(duì)象的創(chuàng)建、調(diào)整、銷毀
- 布局的計(jì)算
- 自動(dòng)化布局
對(duì)于第一個(gè)問題:
大家都知道UIView和CALayer都能夠用于展示,UIView除此之外還可以用于交互,因此在一些不需要交互的地方咱們可以直接使用CALayer來展示(使用CALayer的contents屬性可以用來展示圖片)
- 不管使用什么方法進(jìn)行布局,到最后都是落到對(duì)UIView的frame、bounds、center等屬性進(jìn)行調(diào)整,所以為了能夠保持流暢,我們?cè)诓季智耙M量一次性把視圖的位置調(diào)整好
- 對(duì)視圖進(jìn)行頻繁創(chuàng)建也是很消耗資源的,所以比盡量避免吧UIView進(jìn)行移除、重新創(chuàng)建,把這個(gè)UIView hide了吧
對(duì)于第二個(gè)問題:
大家在對(duì)UITableViewCell進(jìn)行布局時(shí),在后臺(tái)線程進(jìn)行計(jì)算盡量用上緩存吧(P.S.你可以使用陽(yáng)神的UITableView-FDTemplateLayoutCell來做,或者利用MJ的FrameModel來緩存)。當(dāng)你的TableViewCell的高度是一定的時(shí)候,直接設(shè)置tableView的RowHeight屬性吧
對(duì)于第三個(gè)問題
雖然說自動(dòng)布局時(shí)蘋果力推的技術(shù),但是它也是有著一當(dāng)消耗的,特別是當(dāng)視圖非常復(fù)雜的時(shí)候,CPU的消耗就會(huì)呈指數(shù)級(jí)別上升