TableViewCell的兩種重用方式的區(qū)別

重點(diǎn):cell重用的重中之重就是reuseIdentifier,不管你是否注冊(cè)了某cell,只要產(chǎn)生的cell的reuseIdentifier屬性是有值的,那么當(dāng)它劃出tableView之后就會(huì)被再次重用~

1.使用register方法先注冊(cè)(Nib或Class),然后通過(guò)下面方法來(lái)復(fù)用單元格,不用判斷cell是否為nil。

代碼:

dequeueReusableCellWithIdentifier: forIndexPath:


2.不使用register方法注冊(cè),使用下面方法來(lái)重用單元格,但是需要判斷是否為空,如果為空那就使用initWithStyle: reuseIdentifier:方法產(chǎn)生新的cell并設(shè)置復(fù)用標(biāo)識(shí)符。

QZResidentListCell?*cell = [tableView?dequeueReusableCellWithIdentifier:NSStringFromClass(QZResidentListCell.class)];?

???if?(!cell) {? ? ? ? cell = [[QZResidentListCell?alloc]?initWithStyle:UITableViewCellStyleDefault?reuseIdentifier:NSStringFromClass(QZResidentListCell.class)];? ? }
以上兩種方式各有特點(diǎn)。

方式一更簡(jiǎn)潔,正常情況下使用方式一沒(méi)有問(wèn)題,也更清晰明了。

方式二適用于封裝的情況。也就是說(shuō),我采用基礎(chǔ)數(shù)據(jù)model的方式來(lái)初始化數(shù)據(jù)源,然后通過(guò)基礎(chǔ)數(shù)據(jù)model中的cellClass來(lái)創(chuàng)建cell,也就是說(shuō),即便在tableView中有不同的cell,我在封裝之后也會(huì)在cellForRow方法中只通過(guò)一種方式創(chuàng)建cell,這種情況就只能使用方式二了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容