在项目中遇见了一个crash,打全局断点无法定位,报错原因
*** Assertion failure in -[UICollectionViewData validateLayoutInRect:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3698.103.12/UICollectionViewData.m:447
产生原因:
在UITableViewCell
中嵌套了一个UICollectionView
,作为cell中的一个标签,有的数据有标签有的没有
解决方法:
作为标签的UICollectionView
的numberOfSectionsInCollectionView:
代理方法中,重置collectionView
的布局
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
[collectionView.collectionViewLayout invalidateLayout];
return 1;
}
再在cell中,因为改变了CollectionView
的高度布局约束,加上[self.contentView layoutIfNeeded]
去更新Cell
的布局约束。
网友评论