美文网首页
iOS开发YN组件之数据展示层

iOS开发YN组件之数据展示层

作者: 景超叔叔 | 来源:发表于2016-08-16 11:27 被阅读32次

    数据展示层是从网络获取到数据之后,展示到手机页面上,很大一部分的iOS工作就是展示从接口拿到的数据,展示出来,所以这部分还是挺实用的。
    数据展示层
    1 YNTableView
    简介:YNTableView的目的是为了封装UITableView的代理方法和数据源方法,简化VC中的代码,并且高复用,可用于项目中任何一个需要使用到tableView的类中,在后续的项目中也可以简单的变动即可复用,提升开发效率
    使用说明
    .h文件

    - (id)initWithItems:(NSMutableArray *)items
         cellIdentifier:(NSString *)identifier
        dataSourceBlock:(TableViewDataSourceBlock)dataSource
    delegateBlock:(TableViewDelegateBlock)delegate;
    

    这里items是数据源数组,identifier是重用标识符,dataSource和delegate就是替代代理方法的block,block的重命名在源码中可以看到

    我们还需要一个属性,特殊处理某些使用到编辑cell功能的tableView,数据源数组也需要使用到属性,很多时候刷新表格需要刷新数据源数组

    // 编辑block, 在需要用到的界面去使用
    @property (nonatomic, copy) TableViewEditingBlock editingBlock;
    @property (nonatomic, strong) NSMutableArray *items;
    

    简单介绍

    具体的实现在代码中都有写到,这里就简单的说一下几个block的使用

    •   第一个地方在cell的注册里面,使用block回调处理cell的逻辑部分
    •   第二地方是编辑cell,例如删除cell等
    •   第三个地方是点击cell的方法
    

    具体使用

    1:初始化

    // 自定义封装tableView
        _zyTableView = [[YNTableView alloc] initWithItems:self.arrProduct cellIdentifier:identifier dataSourceBlock:^(TestCell2 *cell, id model, NSIndexPath *indexPath) {
            
            cell.text = [NSString stringWithFormat:@"%zd",indexPath.row+1];
            cell.model = model;
        } delegateBlock:^(NSIndexPath *indexPath) {
            // 自定义点击单元格方法
            [self selectRowAtIndexPath:indexPath];
        }];
    

    2:注册单元格

    [self.myTB registerClass:[WellCell class] forCellReuseIdentifier:identifier];
    

    3:设置cell高度需要传入当前的tableview对象

    _zyTableView.YNTableView = self.myTB;
    

    4:设置代理和数据源

    self.myTB.delegate = _zyTableView;
    self.myTB.dataSource = _zyTableView;
    _zyTableView.items = categoryArr;//设置数据源
    

    5:刷新表格数据源

    _zyTableView.items = categoryArr;
    [self.myTB reloadData];
    

    更多信息请参考项目源码 GitHub代码地址:https://github.com/PowerYang/YNRequest

    相关文章

      网友评论

          本文标题:iOS开发YN组件之数据展示层

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