CollectionView numberOfItemsInSection变量

时间:2017-01-26 08:36:11

标签: ios arrays swift uicollectionview

我希望在另一个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)

1 个答案:

答案 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
        }
    }
}

显然这是不断更新的。