swift3.0自定义UICollectionViewLayout 当数据改变collectionView.reloadData()时出现如下错误:
'NSInternalInconsistencyException', reason: 'UICollectionView received layout attributes for a cell with an index path that does not exist: {length = 2, path = 10 - 0}'
经过不断调试,出现这种情况的原因是数据切换时数组长度变化,但是UICollectionViewLayout中定义的itemAttributes并没有清空。还是拿的reloadData()之前的数据
解决办法:在继承了UICollectionViewLayout的类中重写以下方法,将itemAttributes置为空
override func invalidateLayout() {
super.invalidateLayout()
itemAttributes = nil
}