iOS開發(fā)中,頁面大致可分為列表和表單。大量的列表頁面,如果沒有封裝好,會導(dǎo)致很多重復(fù)的代碼充斥在項目中,同時有時候如果架構(gòu)設(shè)計不合理的話也會導(dǎo)致控制器中有大量的代碼。這不僅會導(dǎo)致開發(fā)效率低,項目重構(gòu)艱難,同時也會導(dǎo)致很多本來不應(yīng)出現(xiàn)的bug卻出現(xiàn)。由于每個列表的頁面的復(fù)雜程度不一樣,所以感覺封裝的困難性。API太多,不好用,還不如原生,API太少,又滿足不了有些頁面的復(fù)雜性。本人曾遇到過一股腦把控制器里面的內(nèi)容全部移動到代理object里面,控制器是空了,但是object里面卻滿滿的,感覺也不合理。本人根據(jù)Android的列表顯示,引入適配器設(shè)計,希望對大家有用。
廢話少說,先看下如何一行代碼解決常用功能
- (void)viewDidLoad {
[super viewDidLoad];
self.adapter.frame(self.view.bounds) //tableView frame
.parentView(self.view) //添加的父view
.rowHeight(80) //行高,可不設(shè)置
.datas(self.datas); //數(shù)據(jù)源
//也可以這樣,真正一行代碼
self.adapter = BaseAdapter.adapterWithCellName(@"CustomCell")
.frame(self.view.bounds) //tableView frame
.parentView(self.view) //添加的父view
.rowHeight(80) //行高,可不設(shè)置
.datas(self.datas); //數(shù)據(jù)源;
}
//更換數(shù)據(jù)源 自動刷新
- (void)refreshTableData {
self.adapter.tableViewDatas = @[];
}
#pragma mark -- getter
//創(chuàng)建適配器
- (BaseAdapter *)adapter {
if (_adapter == nil) {
//自動支持xib
// _adapter = BaseAdapter.adapter([CustomCell class]);
_adapter = BaseAdapter.adapterWithCellName(@"CustomCell");
}
return _adapter;
}
同時如果比較復(fù)雜的列表頁面,可以新創(chuàng)建適配器繼承于BaseAdapter,完成BaseAdapter里沒有的功能,支持完美擴展。
更多功能有demo示例,如果感覺對你有那么一點幫助,請幫忙??,點贊收藏,關(guān)注,代碼很簡單,可以自己根據(jù)自己喜好修改源碼,如果有不滿意的地方或者好的建議,評論區(qū)見,喜歡你拿??過來
非常感謝,
奉上示例demo鏈接https://github.com/13621877812/TableView.git