美文网首页
UITableView的封装_XJTableHelper

UITableView的封装_XJTableHelper

作者: XingJin | 来源:发表于2017-03-27 15:09 被阅读0次

    需求

    利用闲下来的这段时间,对之前的工作稍微整理一下.

    首先拿到公司项目的UI,大多数的页面都是table页面,并且数目很庞大,不论开发周期的长短,如果每一个页面都要把tableView的<UITableViewDataSource>,<UITableViewDelegate>方法都重复的实现,ViewController无疑会变为处理table的垃圾桶.

    UICollectionView同样适用.

    git传送门:demo在这里😋 

    进入正题

    UITableViewDataSource和UITableViewDelegate方法很多,什么值得封装?

    1,tableView_required的两个方法,cellForRowAtIndexPath,numberOfRowsInSection一定要搞的

    2.didSelectRowAtIndexPath点击处理也是必然要用到的,heightForRowAtIndexPath配合市场上的自适应cell高度的三方那是相当给力(定高的table不建议用,table.rowHeight能解决的问题没必要再招来麻烦)

    3.拿最常规的table页面来说,多section或者多cell,定制header和footer,还有title很少遇到,个人觉得还是简单的来比较好.(不是不能做,游戏规则自己定,只是略显累赘)

    上代码

    第一步:需要的block,甚至不需要cell,model的传值
    ,后面会有介绍

    设置block

    第二步:初始化,这里可以根据页面的需要程度进行选择,对于极简或者稍微复杂点的页面(需要定制delegate多个方法),建议第一种,一般table页果断第二种.

    初始化

    第三步:目前为止还没有数据源,通常数据源都是请求到的数据,放在init里面只能传nil,很多余,不如直接了当的追加数据源.初始化既然都能细分有无delegate的回调,肯定要有相应的授权,需要我干什么我才干什么...

    public

    方法实现:

    1.初始化

    初始化

    2.数据源处理,授权处理

    public

    3.dataSource,在这里cell直接可以performSelector配置cell,就不需要controller再做操作

    cell

    4.delegate,对delegate有高要求的页面,我这只是抛砖引玉

    delegate

    5.UICollectionView异曲同工

    应用如下


    1.只处理dataSource,cell回调甚至不用写...

    初始化1

    2.连带delegate的初始化

    cell点击事件+cell高度设置
    storyboard布局









    相关文章

      网友评论

          本文标题:UITableView的封装_XJTableHelper

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