iOS开发中,页面大致可分为列表和表单。大量的列表页面,如果没有封装好,会导致很多重复的代码充斥在项目中,同时有时候如果架构设计不合理的话也会导致控制器中有大量的代码。这不仅会导致开发效率低,项目重构艰难,同时也会导致很多本来不应出现的bug却出现。由于每个列表的页面的复杂程度不一样,所以感觉封装的困难性。API太多,不好用,还不如原生,API太少,又满足不了有些页面的复杂性。本人曾遇到过一股脑把控制器里面的内容全部移动到代理object里面,控制器是空了,但是object里面却满满的,感觉也不合理。本人根据Android的列表显示,引入适配器设计,希望对大家有用。
废话少说,先看下如何一行代码解决常用功能
- (void)viewDidLoad {
[super viewDidLoad];
self.adapter.frame(self.view.bounds) //tableView frame
.parentView(self.view) //添加的父view
.rowHeight(80) //行高,可不设置
.datas(self.datas); //数据源
//也可以这样,真正一行代码
self.adapter = BaseAdapter.adapterWithCellName(@"CustomCell")
.frame(self.view.bounds) //tableView frame
.parentView(self.view) //添加的父view
.rowHeight(80) //行高,可不设置
.datas(self.datas); //数据源;
}
//更换数据源 自动刷新
- (void)refreshTableData {
self.adapter.tableViewDatas = @[];
}
#pragma mark -- getter
//创建适配器
- (BaseAdapter *)adapter {
if (_adapter == nil) {
//自动支持xib
// _adapter = BaseAdapter.adapter([CustomCell class]);
_adapter = BaseAdapter.adapterWithCellName(@"CustomCell");
}
return _adapter;
}
同时如果比较复杂的列表页面,可以新创建适配器继承于BaseAdapter,完成BaseAdapter里没有的功能,支持完美扩展。
更多功能有demo示例,如果感觉对你有那么一点帮助,请帮忙👍,点赞收藏,关注,代码很简单,可以自己根据自己喜好修改源码,如果有不满意的地方或者好的建议,评论区见,喜欢你拿🧱过来
非常感谢,
奉上示例demo链接https://github.com/13621877812/TableView.git