美文网首页iOS开发技术分享iOS开发iOS开发
UITableView 自定义cell的增加与删除

UITableView 自定义cell的增加与删除

作者: Fs_purple | 来源:发表于2016-12-29 10:06 被阅读622次

    文末附上Demo下载地址。

    记录下今天开发里面碰到的,(大神同事指点)。需要点击某种支付方式,自定义的插入一个自定义的cell到TableView里面去。上张图片吧。

    cell.png

    比如点击现金,左侧便新增加一个自定义的cell。
    首先想到的是用TableView自带的 比如添加cell的方法。

    - (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
    

    又比如删除cell的方法

    - (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation; indexPath[testTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]。
    

    但是后来删除cell的时候。估计数据处理上有问题。所以下面说下后来处理数据的另外一方法。

    在制定位置插入Cell。(后面会上传Demo。欢迎下载。)
    先说下思路吧。

    1. 新建需要加入的cell相关View文件+对应的xib。
      cellForRowAtIndexPath方法里面 对应的Section cell的相关位置进行部署。
      比如代码里面的
    PayTypeCell *paycell = [[[NSBundle mainBundle] loadNibNamed:@"PayTypeCell" owner:self options:nil]firstObject];
    [paycell loadcellDataPayModel:indexPaths[indexPath.row-3] index:indexPath.row-3];
         paycell.delegate = self;
         return paycell;
    

    其中loadcellDataPayModel:indexPaths方法是通过新建的模型做的转化。

    思路:
    先新建可变数组。

    1. 增加cell的时候,将cell样式加入到可变数组中。
    2. 执行 TableView.ReloadData方法。

    下面简要说下删除Cell的方法
    因为删除按钮是定义在cell上面。而我们需要将选中的这个cell的tag值传给主控制器。
    所以需要用到代理传值

    02.png

    使用这个代理将这个cell的tag值传给控制器。点击右边的删除按钮。
    主控制器继承代理。实现代理方法。

    -(void)deleteCellWithTag:(NSInteger)tagNum{
    
    [indexPaths removeObjectAtIndex:tagNum];
    [self.leftTableView reloadData];
    

    }

    最重要的一步是 [indexPaths removeObjectAtIndex:tagNum];
    这样TableViewreloadData去实现tableView的代理方法的时候才能将这种可变数组保持一致。

    记录下。大家共同学习进步。

    简单的写了个相同的Demo。有喜欢的帮忙Star下哟。
    Demo下载地址
    另外分享下mac上传项目到Github上的比较好的几篇博客。 因为通俗简单。
    上传本地项目到Github

    相关文章

      网友评论

        本文标题:UITableView 自定义cell的增加与删除

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