美文网首页
tableViewCell列表点击展开显示二级列表

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

作者: 奋斗ing0310 | 来源:发表于2017-05-15 09:56 被阅读0次

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

    #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列表点击展开显示二级列表

          本文链接:https://www.haomeiwen.com/subject/ipncxxtx.html