2017-01-26 56 views
0

我想在另一個collectionView裏面有一個collectionView,但是數據來自一個數組數組,所以numberOfItemsInSection將根據我們填充的父級單元格而變化。CollectionView numberOfItemsInSection變量

在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

嗯,我在正確的軌道和解決方案上是我以前從未用過或甚至知道你可以做的事情。

增加了一個條件來檢查,如果數組是空的,因爲它是從未來的異步調用它是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 
     } 
    } 
} 

顯然,這是不斷更新的。

相關問題