美文网首页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