CollectionViewCell嵌套UITableView解决重用问题

如果需要支持页面的滚动,同时内部又是明显的列表。可能会采用UICollctionView嵌套UITableView的架构。

1.由此带来的cell重用问题可以使用如下方式尝试解决:

  • 在cell准备重用的时候会先后调用一下两个方法:

     - (void)prepareForReuse {
         [super prepareForReuse];
         //在此方法中执行重用前的操作
        //如给contentView中的tableView赋值后的刷新操作
        [self.tableView reloadData];
     }
    
     - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    
     }
    

2.关于tableViewCell重用带来的问题,可能是cell在没有保证数据来自模型,又或是没有在cell重用前对cell内的数据清空。

3.清空数据的方式,一种是在上述的方法中对cell内的控件内容清空,另一种是,在每次执行"cellForRow..."方法时,对cell内的控件赋空值。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    cell.textLabel.text = nil;
}

4.赋值后的刷新操作
在模型赋值后对collectionViewCell中的tabelView进行reloadData 也是关键步骤。

你可能感兴趣的:(CollectionViewCell嵌套UITableView解决重用问题)