Assertion failure in -[UICollect
2018-04-25 本文已影响103人
loongod
*** Assertion failure in -[UICollectionViewData validateLayoutInRect:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3698.52.10/UICollectionViewData.m:435
如上报错,我是一个View上添加了2个相同的自定义ViewA,这个自定义ViewA上有一个UICollectionView,然后设置了masonry的约束,每次赋值数据,根据数据更新约束,
更新约束:
CGFloat height = isShow ? 101 : 0;
[self.viewA mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(weakSelf).offset(customServiceTop);
make.left.equalTo(weakSelf.mas_left);
make.right.equalTo(weakSelf.mas_right);
make.height.mas_equalTo(height);
}];
这2个ViewA更新约束都是显示就有高度101,不显示高度就是0;
然后再设置hidden属性显示与否。
如果频繁的,更新这2个viewA的约束和上面的collectionView的数据源,就会报如题的错误。
最后解决: 把这2个viewA的高度不变,每次更新约束只更改距离顶部的距离,而不改变高度。