如果需要支持页面的滚动,同时内部又是明显的列表。可能会采用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 也是关键步骤。