我遇到了这个崩溃:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'no UICollectionViewLayoutAttributes instance for
-layoutAttributesForSupplementaryElementOfKind: UICollectionElementKindSectionHeader
at path <NSIndexPath: 0x147b09e0> {length = 2, path = 0 - 0}'
此处performBatchUpdates
:
// Reload just the indexPath that loaded
[UIView animateWithDuration:0 animations:^{
[self.collectionView performBatchUpdates:^{
[self.collectionView reloadItemsAtIndexPaths:paths];
} completion:nil];
}];
我正在使用UICollectionViewFlowLayout
:
UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init];
_collectionViewLayout = layout;
我不明白为什么会这样。我正在重新加载我的一个商品单元格,它指的是补充视图(这是一个标题视图)。
修改
以下是否与它有关?
如果我在indexPath
中退出- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
,我就会收到第一个电话:
-[WSImageViewerController collectionView:cellForItemAtIndexPath:] [Line 318] indexPath = <NSIndexPath: 0x16d5c990> {length = 2, path = 0 - 0}
indexPath
来电的- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
日志是:
-[WSImageViewerController collectionView:viewForSupplementaryElementOfKind:atIndexPath:] [Line 399] indexPath = <NSIndexPath: 0x15691570> {length = 2, path = 0 - 0}
两个indexPath都是0 - 0
。这与它有关吗?
编辑两个
这是崩溃时发生的事情。它试图在标题视图上加载常规项单元格。中心有一个大的UIActivityIndicatorView,它来自补充标题视图,所以我知道已经添加了。
答案 0 :(得分:0)
这已经过时了,我不知道你是否属于这种情况,但我想留下这个以防有人遇到同样的问题。如果您正在为UICollectionViewController使用自定义布局,请确保使用正确的名称作为补充视图类型。例如,我使用的是CHTCollectionViewWaterfallLayout
,我必须使用CHTCollectionElementKindSectionHeader
代替UICollectionElementKindSectionHeader
作为补充视图类型名称。