2017-01-01 35 views
0

嗨我有兩個代碼爲某人的原因1作品,而其他人不能有人請解釋爲什麼?第一個功能起作用,而第二個功能不起作用。我試圖生成一個單元格作爲類型PayNowCell,並將其後的每個單元格作爲CheckOutCell類型。但是,它只允許我將第一個單元格作爲CheckOutCell,第二個單元格作爲PayNowCell,將後面的每個單元格作爲CheckOutCell。謝謝!!!錯誤是索引超出界限。並且它指向這條線
cell.item = checkout [indexPath.item]。UICollectionView不斷崩潰,除非我設置indexpath.items = 1

基本上我有一個動態數組結賬[]和IM只是想插入名爲paynow說明電池ontop的每個checkoutcell的同時結帳[]增大和收縮

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

    if indexPath.item == 1 { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "paynow", for: indexPath) as! PayNowCell //init cells 
    return cell 
    }else{ 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) as! CheckoutCell //init cells 
    cell.item = checkout[indexPath.item] 
    return cell 
    } 
} 

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

    if indexPath.item == 0 { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "paynow", for: indexPath) as! PayNowCell //init cells 
    return cell 
    }else{ 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) as! CheckoutCell //init cells 
    cell.item = checkout[indexPath.item] 
    return cell 
    } 
} 

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return (checkout.count + 1) //init number of cells 
} 
+0

請詳細解釋並在此處顯示您的numberOfItem行代碼。 –

+0

添加了對此的抱歉 –

回答

0

試試這個陣列管理您的收藏視圖

var array = [0,[]] 

然後添加

array[1] = [your array for index 1] 

喲您可以在您的收藏視圖中添加用於管理多個單元格的部分: -

func numberOfSections(in collectionView: UICollectionView) -> Int{ 
    return (array[section] as AnyObject).count 
} 

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return array[1].count 
} 


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

    if indexPath.item == 0 { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "paynow", for: indexPath) as! PayNowCell //init cells 
    return cell 
    }else{ 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) as! CheckoutCell //init cells 
    let checkout = array[1] // pass here array 
     guard checkout.count != 0 else { 
      return cell 
     } 
    cell.item = checkout[indexPath.item] 
    return cell 
    } 
} 
+0

var array = [0,[]] array [1] = [您的數組爲索引1] 上述兩個數組是什麼?我沒有把它們放在哪裏以及爲什麼我們需要數組。 –

+0

對於這裏的部分目的,你需要一個主數組,其中有計數爲0和1的行數,這就是爲什麼我在這裏使用這個代碼會工作。 –

+0

好吧,我明白了。它雖然不起作用。如果我不想使用數組索引1 –