tableViewCell列表点击展开显示二级列表

之前在网上看到过这种的,都是封装的或者是用的第三方,这是自己写的,有兴趣大家也可以把他封装起来留着自己用;

#import“ViewController.h”

#define WIDTH [UIScreen mainScreen] .bounds.size.width

#define HEIGHT [UIScreen mainScreen] .bounds.size.height

@interfaceViewController()

@property(nonatomic,strong)NSMutableArray* dataArray;

@property(nonatomic,strong)NSMutableArray* stateArray;

@property(nonatomic,strong)NSMutableArray* sectionArray;

@property(nonatomic,strong)UITableView* tableView;

@结束

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

自我。title=@“TableView的点击展开显示”;

[selfinitDataSource];

[selfinitTable];

}

/ **

*初始化选择行业

* /

- (void)initDataSource

{

_sectionArray= [NSMutableArrayarrayWithObjects:@“计算机/互联网/通信”,

@ “生产/工艺/制造”,

@ “商业/服务业/个体经营”,

@ “金融/银行/投资/保险”,

@“文化/广告/传媒”,

@“娱乐/艺术/表演”,

@ “医疗/护理/制药”,

@ “律师/法务”,

@“教育/培训”,

@“学生”,nil];

的NSArray*一个=@ [@ “工程狮”@“程序猿”@“ UI设计师”@“运营人员”@“产品经理”@“策划师”@“市场拓展”,@ “网站编辑”,@“其他”];

NSArray的* 2 =@ [@ “管理层”@“技术员”@“检验员”@“质检员”@“就是个工人”@“小组长”@“车间主任”,@ “其他”];

NSArray的* 3 =@ [@ “服务员”@“收银员”@“会计”@“文秘”@“保安大哥”@“销售经理”@“造型师”@“厨师”,@“采购员”,@“业务经理”,“个人户”,“”其他“];

NSArray的* 4 =@ [@”证券分析师“@”操盘手“@”客户经理“@”保险经纪“@”银行职员“@”投资经理“@”理财顾问“@”保险精算师“,@”其他“];

的NSArray* 5 =@ [@ “作家”@“设计师”@“广告策划”@“主持人”@“编导”@“记者”@“制片人”@“导演”,@“草根写手”,@“其他”];

的NSArray* 6 =@ [@ “歌手”@“模特”@“导演”@“经纪人”@“编剧”@“摄影师”@“音乐人”@“制作人”,@“艺术家”,@“其实我是一个演员”,@“其他”];

NSArray的* 7个可=@@”主治医师“@”营养师“@”护士“@”护工“@”美容师“@”医药代表“@”医务工作者“@”药剂师“,@”其他“];

NSArray的* 8 =@ [@ “公务员”@“律师”@“警察”@“法官”@“政府工作人员”@“军人”@“其他”];

的NSArray* 9 =@ [@ “幼教”@“教师”@“教授”@“户外拓展”@“讲师”@“教练”@“其他”];

的NSArray* 10 =@ [@ “中学生”@“大学生”@“研究生”@“博士生”@“留学生”];

_dataArray= [NSMutableArrayarrayWithObjects:一,二,三,四,五,六,七,八,九,十,零];

_stateArray= [NSMutableArrayarray];

对于(诠释I =0;我<_dataArray。计数;我++)

{

//所有的分区都是闭合

[_stateArrayaddObject:@“0”];

}

}

/ **

*初始化的TableView

* /

- (void)initTable {

_tableView= [[UITableView中的alloc]initWithFrame:CGRectMake(0,0,WIDTH,HEIGHT)式:UITableViewStylePlain];

_tableView。委派=自我;

_tableView。dataSource=self;

_tableView。tableFooterView= [UIViewnew];

[自我。查看addSubview:_tableView];

}

#pragma mark - UITableViewDataSource UITableViewDelegate

- (NSInteger)numberOfSectionsInTableView :(UITableView*)tableView

{

返回_sectionArray。数;

}

- (NSInteger)tableView :(UITableView*)tableView numberOfRowsInSection :(NSInteger)部分

{

if([_stateArray[section]isEqualToString:@“1”]){

//如果是展开状态

NSArray* array = [_dataArrayobjectAtIndex:section];

返回数组。数;

}else{

//如果是闭合,返回0

返回0;

}

}

- (UITableViewCell*)tableView :(UITableView*)tableView cellForRowAtIndexPath :(NSIndexPath*)indexPath

{

静态NSString* cellID =@“cellID”;

UITableViewCell* cell = [tableViewdequeueReusableCellWithIdentifier:cellID];

if(cell ==nil){

cell = [[UITableViewCellalloc]initWithStyle:(UITableViewCellStyleSubtitle)reuseIdentifier:cellID];

}

细胞。textLabel。text=_dataArray[indexPath。section] [indexPath]行];

细胞。backgroundColor= [UIColorwhiteColor];

细胞。selectionStyle=UITableViewCellAccessoryNone;

// cell.tag = _dataArray [indexPath.section] [indexPath.row];

细胞。tag= indexPath。行;

返回单元格

}

/ **

*设置部分的标题

* /

- (NSString*)tableView :(UITableView*)tableView titleForHeaderInSection :(NSInteger)部分

{

return_sectionArray[section];

}

/ **

*设置头标题的样式,我这里是手写了一个按钮,在按钮上放的图片,文字。可以用别的方式

* /

- (UIView*)tableView :(UITableView*)tableView viewForHeaderInSection :(NSInteger)部分

{

UIButton* button = [UIButtonbuttonWithType:UIButtonTypeCustom];

[按钮SETFRAME:CGRectMake(0,0,自我。视图。帧。大小。宽度,44)];

[buttonsetTag:section +1];

按钮。backgroundColor= [UIColorwhiteColor];

[buttonsetTitleColor:[UIColorgrayColor]forState:UIControlStateNormal];

[按钮setTitleEdgeInsets:UIEdgeInsetsMake(0,0,0,60)];

[buttonaddTarget:selfaction:@selector(buttonPress :)forControlEvents:UIControlEventTouchUpInside];

的UIImageView*线= [[的UIImageView的alloc]initWithFrame:CGRectMake(0,按钮帧。大小。高度-1,按钮帧。大小。宽度,1)];

[linesetImage:[UIImageimageNamed:@“case_cell_Line”]];

[buttonaddSubview:line];

的UIImageView* imgView = [[的UIImageView的alloc]initWithFrame:CGRectMake(10,(44-22)/2,22,22)];

[imgViewsetImage:[UIImageimageNamed:[NSStringstringWithFormat:@“icon-%ld”,section +1]]];

[buttonaddSubview:imgView];

的UIImageView* _imgView = [[的UIImageView的alloc]initWithFrame:CGRectMake(自我。视图。帧。大小。宽度-30,(44-6)/2,10,6)];

if([_stateArray[section]isEqualToString:@“0”]){

_imgView。image= [UIImageimageNamed:@“icon-sjt”];

}elseif([_stateArray[section]isEqualToString:@“1”]){

_imgView。image= [UIImageimageNamed:@“icon-xjt”];

}

[buttonaddSubview:_imgView];

的UILabel*的TLabel = [[的UILabel的alloc]initWithFrame:CGRectMake(40,(44-20)/2,200,20)];

[tlabelsetBackgroundColor:[UIColorclearColor]];

[tlabelsetFont:[UIFontsystemFontOfSize:16]];

[tlabelsetText:_sectionArray[section]];

[buttonaddSubview:tlabel];

返回按钮;

}

/ **

* headButton点击

* /

- (void)buttonPress :(UIButton*)发件人

{

//判断状态值

如果([_stateArray[发送端。标签-1]isEqualToString:@ “1”]){

//修改

[_stateArrayreplaceObjectAtIndex:sender。标签-1withObject:@“0”];

}else{

[_stateArrayreplaceObjectAtIndex:sender。标签-1withObject:@“1”];

}

[_tableViewreloadSections:[NSIndexSetindexSetWithIndex:sender。标签-1]withRowAnimation:UITableViewRowAnimationAutomatic];

}

/ **

*返回部分的高度

* /

- (CGFloat)tableView :(UITableView*)tableView heightForHeaderInSection :(NSInteger)部分

{

返回44;

}

@结束

你可能感兴趣的:(tableViewCell列表点击展开显示二级列表)