Contents
  1. 1. UICollectionView的一些问题
    1. 1.1. 崩溃 [UICollectionViewData validateLayoutInRect:]
    2. 1.2. iOS 8 上设置 sectionInset left 无效

UICollectionView的一些问题

崩溃 [UICollectionViewData validateLayoutInRect:]

在部分系统上数据源有变更(例如清空了reloadData)的情况下会发生如上crash

参考链接:
https://stackoverflow.com/questions/18339030/uicollectionview-assertion-error-on-stale-data

解决办法:

1
2
3
[self.cvCollection reloadData];
[self.cvCollection.collectionViewLayout invalidateLayout];
//部分系统上 reload [UICollectionViewData validateLayoutInRect:] crash

iOS 8 上设置 sectionInset left 无效

只有在使用了适应尺寸时left才会失效

自适应尺寸

1
self.flLayout.estimatedItemSize = CGSizeMake(50, 50);

这是系统的bug,后面系统版本没发现这种问题

解决方法:

1
2
3
4
5
if (isIOS8) {
self.cvCollection.contentInset = UIEdgeInsetsMake(0, 15, 0, 15);
} else {
self.flLayout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15);
}
Contents
  1. 1. UICollectionView的一些问题
    1. 1.1. 崩溃 [UICollectionViewData validateLayoutInRect:]
    2. 1.2. iOS 8 上设置 sectionInset left 无效