如果我-[UICollectionView performBatchUpdates:]从内部viewWillAppear:,内部viewDidAppear:,这些方法之间调用,或者任何时候集合视图尚未由更大的UIView视图层次结构布局,则集合视图将断言:
***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无效更新:无效的节数.更新后的集合视图中包含的节数(X)必须等于更新前的集合视图中包含的节数(X),加上或减去插入或删除的节数(插入X,0删除)."
"X"是我插入的任何数量的项目.我已经确认数据源正在正确更新,并且更新中的索引路径是正确的.
当数据源刚刚在调用之前更新时,集合视图状态如何与数据源保持一致performBatchUpdates:?似乎出乎意料地触发了reloadData.
我有一个数组,其中包含一些要UICollectionView显示的元素。然后,我去获取更多元素并将其附加到我的数组中。然后,我想告诉您UICollectionView元素已添加到数据源并更新UI。
我试过了,但是没有用:
// Add more data to my existing array
myArray.append(contentsOf: moreElements)
let indexPath = [IndexPath(row: myArray.count-1, section: 0)]
myCollectionView.insertItems(at: indexPath)
Run Code Online (Sandbox Code Playgroud)
我收到此错误,但不确定是否做错了。
编辑:我不想使用 myCollectionView.reloadData()