标题是我遇到的错误,我不知道为什么,但这里有一些信息,希望这里的人可以解释我。
我已经分类UICollectionViewFlowLayout
,因为这样可以节省我自己计算单元格的框架(也许这是一个问题?)prepareLayout
。然后我使用这些UICollectionViewLayoutAttributes
信息来计算覆盖它的补充视图,我得到了我想要的布局。
我performBatchUpdates:completion:
用来添加、删除和更新视图。插入工作正常,但删除项目时出现标题中显示的错误。
所以我知道为什么会发生错误,但我什至不知道为什么会发生错误。举例说明导致问题的场景
- 从 1 个项目和 1 个补充视图 1 个部分开始
- 再添加两个项目(
prepareLayout
见 3 个项目和 3 个补充视图) - 删除项目(
prepareLayout
查看 2 个视图和 2 个补充视图) layoutAttributesForSupplementaryViewOfKind:atIndexPath:
被称为询问具有section:0 和 item:2的索引路径的属性- 崩溃是因为它要求第三个补充视图的属性,即使之前它调用了准备布局设置 2 个项目和 2 个补充视图
- 在辞职和绝望中举手
所以据我所知,有问题的功能是:
- (UICollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath
{
return self.layoutInfo[elementKind][indexPath];
}
这当然是由内部网络自动调用的,UICollectionView
所以我不知道它为什么在该索引路径上要求该补充视图。
有人有什么想法吗?也许这就是我使用的方式performBatchUpdates:completion:
,但删除工作正常,直到添加补充视图。我可以根据需要提供更多代码/解释。