tableView迴圈利用效能優化

2022-09-20 04:33:16 字數 2504 閱讀 2299

/**

* 什麼時候呼叫:每當有乙個cell進入視野範圍內就會呼叫

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

// 3.覆蓋資料

cell.textlabel.text = [nsstring stringwithformat:@"testdata - %zd", indexpath.row];

return cell;

}

// 定義重用標識

nsstring *id = @"cell";

// 在這個方法中註冊cell

- (void)viewdidload

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

// 0.重用標識

// 被static修飾的區域性變數:只會初始化一次,在整個程式執行過程中,只有乙份記憶體

static nsstring *id = @"cell";

// 1.先根據cell的標識去快取池中查詢可迴圈利用的cell

uitableviewcell *cell = [tableview dequeuereusablecellwithidentifier:id];

// 2.覆蓋資料

cell.textlabel.text = [nsstring stringwithformat:@"cell - %zd", indexpath.row];

return cell;

// 分割線顏色

self.tableview.separatorcolor = [uicolor redcolor];

// 隱藏分割線

self.tableview.separatorstyle = uitableviewcellseparatorstylenone;

// tableview有資料的時候才需要分割線

// 開發小技巧:快速取消分割線

self.tableview.tablefooterview = [[uiview alloc] init];

// 取消選中的樣式(常用) 讓當前 cell 按下無反應

cell.selectionstyle = uitableviewcellselectionstylenone;

// 設定選中的背景色

uiview *selectedbackgroundview = [[uiview alloc] init];

selectedbackgroundview.backgroundcolor = [uicolor redcolor];

cell.selectedbackgroundview = selectedbackgroundview;

// 設定預設的背景色

cell.backgroundcolor = [uicolor bluecolor];

// 設定預設的背景色

uiview *backgroundview = [[uiview alloc] init];

backgroundview.backgroundcolor = [uicolor greencolor];

cell.backgroundview = backgroundview;

// backgroundview的優先順序 > backgroundcolor

// 設定指示器

// cell.accessorytype = uitableviewcellaccessorydisclosureindicator;

cell.accessoryview = [[uiswitch alloc] init];

3.在控制器中

4.在xmgdealcell中

xib自定義cell

3.在控制器中

4.在xmgdealcell中

**自定義cell(使用frame)

在layoutsubviews方法中設定子控制項的frame

需要提供乙個模型屬性,重寫模型的set方法,在這個方法中設定模型資料到子控制項

2.在控制器中

**自定義cell(使用autolayout)

需要提供乙個模型屬性,重寫模型的set方法,在這個方法中設定模型資料到子控制項

2.在控制器中

非等高的cell

tableview效能優化

uitableview 最核心的部分就是 uitableviewcell 的重用機制 初學者必問面試題.通俗的說 uitableview 有乙個 cell 物件的重用池,其中存放著當前頁面顯示的 cell 在某些裝置上,可能會再多幾個.當 uitableview 滾動時,離開螢幕的 cell 會被放...

TableView效能優化

tableview效能優化是乙個老生常談的問題了,最近也正在做tableview的效能優化,在此我也做乙個總結 uitableview只會建立一螢幕 或者一螢幕多一點 的cell,其他都是取出來重用的。每當cell滑出螢幕的時候,就會放到乙個集合中,當要顯示某一位置的cell時,會先去集合中取,有的...

tableView效能優化

在自定義cell時加上這幾句 1.柵格化,美工的術語 將 cell 中的所有內容,生成一張獨立的影象 在螢幕滾動時,只顯示影象 self.layer.shouldrasterize yes 柵格化,必須指定解析度,否則預設使用 1,生成影象!self.layer.rasterizationscale...