我希望在另一个collectionView中有一个collectionView,但是数据来自一个数组数组,因此numberOfItemsInSection将根据我们填充的父单元格而变化。
in cellForItemAt indexPath:我使用以下代码从我的数组中提取项目:
innerCell.imageCell.file = GlobalParentArray.sharedInstance.globalParentArray[collectionView.tag][indexPath.item].image
正确返回数据但仅当numberOfItemsInSection等于或小于我的数组此级别的项目数时:
GlobalParentArray.sharedInstance.globalParentArray[collectionView.tag].count
所以我需要numberOfItemsInSection在这个计数上变量,因为这将返回项目数。我使用.tag属性并没有太多运气,但我正在寻找让这两个函数计数匹配的方法。
这是我正在使用的实际功能:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if collectionView == self.outerCollectionView {
return self.packArray.count
} else {
//return self.partArray.count
return GlobalParentArray.sharedInstance.globalParentArray[collectionView.tag].count
}
}
目前正是因为这会在此行引发错误:
fatal error: Index out of range
(lldb)
答案 0 :(得分:0)
我正走在正确的轨道上,解决方案是我以前从未使用过的,甚至不知道你能做到的。
添加了一个条件来检查数组是否为空,因为它来自异步调用它位于numberOfItems函数后面
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if collectionView == self.outerCollectionView {
print(self.packArray.count)
return self.packArray.count
} else {
if GlobalParentArray.sharedInstance.globalParentArray.isEmpty == false {
return GlobalParentArray.sharedInstance.globalParentArray[collectionView.tag].count
} else {
return 0
}
}
}
显然这是不断更新的。