|
在项目开发时常常会遇到点击cell的时候,在这个cell的下面重新出现一个新的cell,之前的cell都往下移动,再次点击原来的cell,页面又会回到原来的样子,那么这个动态创建cell的效果是如何实现的呢,经过个人实践,总结自己成功方法如下:
第一种:主要通过UITableView的指定indexpath删除和插入的两个方法
- (void)insertRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
- (void)deleteRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
注意: 动态创建cell的关键点在于我们在某个位置插入或者删除 一个指定cell, 需要在调用上方的方法前更新数据源里的数据,并且数据源里出现两种cell,在下面的方法里一般都需要判断cell类型,并返回相应的数据。具体的示例如下:
1.在对应的控制器里用一个可变数组作为属性,在这个数组里主要存放每个cell的类型及当前cell下面是否有子cell展现:


代码中的i<6,在开发时改为i小于请求回来的数据模型的总数的量,这样保证每个cell对应该数组一个元素,记录每个cell的类型及状态。
2.因为需要展示两种cell,在展示cell的数据源及代理方法要进行以下的判断

3.删除和插入的关键来了


关键的方法都列出来了,实现展开,和关闭的效果如下
 
好了,不早了,其他方法下次写了,楼主洗洗睡了 |