動態展開tableView的cell 2

2021-09-06 16:39:42 字數 3568 閱讀 5337

動態展開tableview的cell[2]

這份**也是參考別人而寫的-_-!

效果:

其實呢,這份**本人是不推薦的,很難維護,因為他的原理就是新增刪除cell,會有這複雜的刪除新增邏輯.

原始碼:

//

//inserttableviewcell

////

//#import

"rootviewcontroller.h

"@inte***ce rootviewcontroller ()@property (nonatomic, strong) uitableview *tableview;

@property (nonatomic, strong) nsmutablearray *dataarray;

@end

@implementation

rootviewcontroller

- (void

)viewdidload

;

nsarray *array =@[dic, dic, dic, dic, dic, dic, dic, dic, dic, dic, dic,

dic, dic, dic, dic, dic, dic, dic, dic, dic, dic, dic];

_dataarray =[nsmutablearray arraywitharray:array];

//初始化tableview

_tableview =[[uitableview alloc] initwithframe:self.view.bounds

style:uitableviewstyleplain];

_tableview.

delegate =self;

_tableview.datasource =self;

[self.view addsubview:_tableview];}//

***********************************=

#pragma mark -

#pragma mark datasource

//***********************************=

- (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section

- (nsinteger)numberofsectionsintableview:(uitableview *)tableview

//重繪重用會一直走這個方法

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

cell.textlabel.text = @"

youxianming";

cell.selectionstyle =uitableviewcellselectionstylenone;

cell.backgroundcolor =[uicolor whitecolor];

return

cell;

}if ([_dataarray[indexpath.row][@"

cell

"] isequaltostring:@"

attachedcell"])

cell.textlabel.text = @"

nozuonodie";

cell.textlabel.textcolor =[uicolor redcolor];

cell.textlabel.font = [uifont fontwithname:@"

helveticaneue-thin

"size:

12.f];

cell.selectionstyle =uitableviewcellselectionstylenone;

cell.backgroundcolor =[uicolor whitecolor];

return

cell;

}return

nil;}//

***********************************=

#pragma mark -

#pragma mark delegate

//***********************************=

- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath

else

}- (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath

else

if ([self.dataarray[indexpath.row][@"

isattached

"] boolvalue] ==yes)

;[self.dataarray removeobjectatindex:path.row];

[self.tableview beginupdates];

[self.tableview deleterowsatindexpaths:@[path]

withrowanimation:uitableviewrowanimationautomatic];

[self.tableview endupdates];

}else

;

nsdictionary * adddic = @;

[self.dataarray insertobject:adddic

atindex:path.row];

[self.tableview beginupdates];

[self.tableview insertrowsatindexpaths:@[path]

withrowanimation:uitableviewrowanimationautomatic];

[self.tableview endupdates];

}}@end

核心的地方-

執行下面的操作(增加或者刪除修改等):

會導致強制計算所有cell的高度:

這一點沒有處理好是會影響效能的,注意哦.

沒有更多的地方需要說的了......

動態展開tableView的cell 2

這份 也是參考別人而寫的 效果 其實呢,這份 本人是不推薦的,很難維護,因為他的原理就是新增刪除cell,會有這複雜的刪除新增邏輯.原始碼 inserttableviewcell import rootviewcontroller.h inte ce rootviewcontroller prope...

qml 動態建立TableView

在qml應用開發中,經常會用到tableview來顯示資料,而有時 又不是固定的,需要根據不同的情況來變換 的標題和內容。本次部落格將會介紹怎樣在qml中動態的建立tableview。首先建立乙個檔案datashowtable.qml,首字母要大寫,這些大家應該都知道吧。import qtquick...

一種可展開伸縮的tableView實現

簡單實現了乙個可展開收縮的tableview,可多級展開,一次收縮,類似於樹形結構,可擴充套件性強。1 結點型別 inte ce ymtreenode nsobject property nonatomic,copy nsstring nodename 結點名字 property nonatomic...