鍍金池/ 問(wèn)答/C  iOS  網(wǎng)絡(luò)安全/ 如何處理cell中subview數(shù)量不定的情況?

如何處理cell中subview數(shù)量不定的情況?

如圖,這是一個(gè)cell:

clipboard.png

cell中的黑色小標(biāo)簽數(shù)量不定,每次給cell賦值model的時(shí)候都要先將它們?nèi)縭emove再循環(huán)創(chuàng)建,這也就導(dǎo)致了tableView很卡。如果讓你們來(lái)做,你們會(huì)怎么優(yōu)化?

回答
編輯回答
舊酒館

cell中的黑色小標(biāo)簽用collectionView展示

2017年6月17日 13:44
編輯回答
孤島

創(chuàng)建足夠的標(biāo)簽,然后給小標(biāo)簽設(shè)置Hidden,不要反復(fù)創(chuàng)建subview

2018年8月6日 07:41
編輯回答
遺莣

簡(jiǎn)答: 緩存.
核心代碼提示: var modelHeightCache:<Model,CGFloat> = [:]
按你上面的說(shuō)法,比較卡可能是由于 tableView 每次需要自動(dòng)計(jì)算 cell 的高度導(dǎo)致比較卡.
這個(gè)的話你可以緩存每一個(gè) model 對(duì)應(yīng)的 cell 的高度. 因?yàn)橥瑯拥膬?nèi)容每次顯示的高度應(yīng)該是一樣的,所以一次計(jì)算之后下一次就可以緩存上了.
另外,如果你在 標(biāo)簽的的創(chuàng)建比較費(fèi)時(shí),你甚至可以緩存 tags 對(duì)應(yīng)的 tagsView(假設(shè)你的標(biāo)簽容器是 tagsView)
核心代碼提示: var tagsViewCache:<TagsHash:TagsView> = [:]

總而言之,通過(guò)緩存減少重復(fù)的計(jì)算及布局工作.

2017年6月16日 13:18
編輯回答
下墜

讓我來(lái)做的話 我會(huì)在cell里邊把標(biāo)簽做成一個(gè)collectionview 起碼不會(huì)像現(xiàn)在這樣remove后再循環(huán)添加那么卡

2017年4月13日 07:13