tableView模版封裝,一行代碼玩轉(zhuǎn)常用功能

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容