IOS开发入门之ios对UITableView进行封装详情介绍
凌雪 2018-10-10 来源 :网络 阅读 956 评论 0

摘要:本文将带你了解IOS开发入门ios对UITableView进行封装详情介绍,希望本文对大家学IOS有所帮助。

本文将带你了解IOS开发入门ios对UITableView进行封装详情介绍,希望本文对大家学IOS有所帮助。


          原由

从事ios工作有段时间了,其中UItableView频繁被使用中,这个过程中不断重复的创建加入代理,好麻烦,而且也让viewcontroller代码显的臃肿,因此做了下面的封装

思路

1.减少重复工作

tableview创建的工作做一次

2.类似的工作作一次

获取数据过程中就把最后需要多少个section,多少个cell的工作做完,后续直接用

3.是谁的东西就归谁做

tableviewcell的高度计算,数据填充都让cell自己去做

代码简单使用样例

简单的一个使用样例

1.viewcontroller

//数据源填充

-(void)createDataSource{

XCTableViewDataSection   *section = [[XCTableViewDataSection alloc]   init];

[section.rowModelsArr   addObject:@"1"];

[section.rowModelsArr addObject:@"2"];

[section.rowModelsArr   addObject:@"3"];

[section.rowModelsArr   addObject:@"4"];

[self.dataSource.sections   addObject:section];

}

//cellforrow类似功能

-(Class)xctableView:(UITableView   *)tableView cellClassAtModel:(id)model{

return   [TableViewCell1   class];

}

//tableviewcell的点击事件

-(void)xctableView:(UITableView   *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath   model:(id)model{

[self.tableView   deselectRowAtIndexPath:indexPath   animated:YES];

}

2.tableviewcell

设置高度

-(CGFloat)xctableView:(UITableView   *)tableView heightForRowAtIndexPath:(NSIndexPath   *)indexPath{

return   100;

}

赋值

-(void)xcSetModel:(id)model   forIndexPath:(NSIndexPath *)indexPath{

_lbName.text =   model;

}

现有提供的代理

1.viewcontroller

/************设置tableviewcell   *******/

//通过model判断加入不同的tableViewCell

-(Class)xctableView:(UITableView   *)tableView   cellClassAtModel:(id)model;

//通过indexpath判断加入不同的tableViewCell

-(Class)xctableView:(UITableView   *)tableView cellClassAtIndexPath:(NSIndexPath *)indexPath;

/********tableviewcell中操作反馈作用的代理   *******/

-(void)xctableviewCell:(XCTableViewCell   *)cell;

-(void)xctableviewCell:(XCTableViewCell *)cell   model:(id)model;

-(void)xctableviewCell:(XCTableViewCell   *)cell button:(UIButton *)button model:(id)model;

2.   tableviewcell

/*****提供通过indexpath和数据两种方法判断设置高度   *******/

-(CGFloat)xctableView:(UITableView *)tableView   heightForRowAtIndexPath:(NSIndexPath *)indexPath;

-(CGFloat)xctableView:(UITableView   *)tableView   heightForRowAtModel:(id)Model;

扩展的功能

1.提供self.dataSource.isXib来设置支持使用xib和纯代码编写的两种cell

2.tableviewcell提供parameters可以传入请求数据,适用复杂业务需要外层json判断的

准备加入的(等我有空了就加)

1.tableviewcell中加入curController,获取当前控制器(代码被我注释了,已经有了)

2.重写tableview和datasource方法

3.对header和footer的封装

    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程