iOS cell重用機制會重疊顯示

2021-07-04 03:59:43 字數 1869 閱讀 7188

常規配置如下 當超過tableview顯示的範圍的時候 後面顯示的內容將會和前面重複

// 這樣配置的話超過頁面顯示的內容會重複出現

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

// 對cell 進行簡單地資料配置

cell.textlabel.text = @"text";

cell.detailtextlabel.text = @"text";

cell.imageview.image = [uiimage imagenamed:@"4.png"];

return cell;

}//通過以下3方案可以解決

方案一  取消cell的重用機制,通過indexpath來建立cell 將可以解決重複顯示問題 不過這樣做相對於大資料來說記憶體就比較吃緊了

// 方案一  通過不讓他重用cell 來解決重複顯示

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

// 對cell 進行簡單地資料配置

cell.textlabel.text = @"text";

cell.detailtextlabel.text = @"text";

cell.imageview.image = [uiimage imagenamed:@"4.png"];

return cell;

}

方案二  讓每個cell都擁有乙個對應的標識 這樣做也會讓cell無法重用 所以也就不會是重複顯示了 顯示內容比較多時記憶體占用也是比較多的和方案一類似

// 方案二  同樣通過不讓他重用cell 來解決重複顯示 不同的是每個cell對應乙個標識

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

// 對cell 進行簡單地資料配置

cell.textlabel.text = @"text";

cell.detailtextlabel.text = @"text";

cell.imageview.image = [uiimage imagenamed:@"4.png"];

return cell;

}

方案三 只要最後乙個顯示的cell內容不為空,然後把它的子檢視全部刪除,等同於把這個cell單獨出來了 然後跟新資料就可以解決重複顯示 

// 方案三  當頁面拉動需要顯示新資料的時候,把最後乙個cell進行刪除 就有可以自定義cell 此方案即可避免重複顯示,又重用了cell相對記憶體管理來說是最好的方案 前兩者相對比較消耗記憶體

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

else//當頁面拉動的時候 當cell存在並且最後乙個存在 把它進行刪除就出來乙個獨特的cell我們在進行資料配置即可避免

}// 對cell 進行簡單地資料配置

cell.textlabel.text = @"text";

cell.detailtextlabel.text = @"text";

cell.imageview.image = [uiimage imagenamed:@"4.png"];

return cell;

}

iOS UItableview重用機制

重用機制的定義就是乙個節省記憶體的機制,當我們的tableview有100或更多資料是如果沒有重用機制那樣會把記憶體很快佔滿 尤其使大多數我們在cell上面放上,是乙個很佔記憶體的東西 所以我們需要重用機制來解決,重用機制就是在我們螢幕的可顯示範圍內建立cell 其餘的復用這些cell,以我個人的理...

tableVIew重用機制

檢視 uitableview 標頭檔案,會找到 nsmutablearray visiablecells 和nsmutabledictnery reusabletablecells 兩個結構。visiablecells 內儲存當前顯示的 cells reusabletablecells 儲存可重用的...

cell重用機制

i ios 裝置的記憶體有限,如果用 uitableview 顯示成千上萬條資料,就需要成千上萬個 uitableviewcell 物件的話,那將會耗盡 ios裝置的記憶體。要解決該問題,需要重用 uitableviewcell物件 n重用原理 當滾動列表時,部分 uitableviewcell 會...