# 03 UICollectionView的一些问题

## 崩溃 \[UICollectionViewData validateLayoutInRect:]

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

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

解决办法:

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

## iOS 8 上设置 sectionInset left 无效

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

自适应尺寸

```swift
self.flLayout.estimatedItemSize = CGSizeMake(50, 50);
```

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

解决方法:

```swift
if (isIOS8) {
        self.cvCollection.contentInset = UIEdgeInsetsMake(0, 15, 0, 15);
    } else {
        self.flLayout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15);
    }
```
