我正在尝试使用UICollectionView作为UITableViewCell的一部分。
所以我面临的问题是,可见表格单元格的集合视图工作正常,但是当我开始滚动表格并且表格开始创建不可见的新单元格时,我面临着一些复制第一个表格单元格的行为。例如,我在第一个表视图单元格中滚动了集合视图,然后我向下滚动表格视图,我看到的新单元格与我的第一个单元格具有相同的状态。您可以在此处查看来源repo和video,以了解我在说什么。
答案 0 :(得分:1)
- [UITableViewCell prepareForReuse]
答案 1 :(得分:1)
在CustomTableViewCell.h中拥有UICollectionView的属性并将其绑定在Main.storyboard中。让我们假设它是这样的:
@property (strong, nonatomic) UICollectionView *collectionView;
在ViewController.m中更改cellForRowAtIndexPath方法,因此每次需要时都会在UICollectionView内重新加载
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell"];
[cell.collectionView reloadData];
[cell.collectionView scrollRectToVisible:CGRectZero animated:NO];
return cell;
}
当然,您需要在ViewController.m文件中导入CustomTableViewCell.h
。
答案 2 :(得分:1)
UITableView单元格中重用标识符的问题,如果在cellForRowAtIndexPath中使用单个单元格标识符,则会出现此问题
<强> 1。为每行使用动态单元格标识符,如
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"CustomTableViewCell_%d",indexPath.row]];
}
2.存储数组中每个集合视图的内容偏移量,并重置集合视图内容偏移量
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
......
[cell.collectionView setContentOffset:scrollingPoint animated:NO];
return cell;
}