Ansicht Sammlung cellForItemAt indexPath nicht immer genannt (Swift)

Erstellte ich eine collection view controller aus dem Storyboard, und legen Sie die benutzerdefinierte Klasse ItemCollectionVC die individuelle Klasse seiner Zelle zu ItemCell und setzen Sie den reuse-identifier zu Cell

Hier mein ItemCollectionVC Klasse:

import UIKit

private let reuseIdentifier = "Cell"

class ItemCollectionVC: UICollectionViewController {

var dataSourceItems: [Items] = []
var counterBuildItems: [Items] {
    let weaponItemArray = WeaponItems.weaponItems as [Items]
    let defenseItemArray = DefenseItems.defenseItems as [Items]
    return weaponItemArray + defenseItemArray
}
var freeBuildItems = WeaponItems.weaponItems as [Items]
var captureKrakenItems: [Items] {
    let weaponItemArray = WeaponItems.weaponItems as [Items]
    let abilityItemArray = AbilityItems.abilityItems as [Items]
    return weaponItemArray + abilityItemArray
}

override func viewDidAppear(_ animated: Bool) {

    switch self.presentingViewController!.title! {
    case "CounterBuildVC":
        dataSourceItems = counterBuildItems
    case "FreeBuildVC":
        dataSourceItems = freeBuildItems
    case "CaptureKrakenVC":
        dataSourceItems = captureKrakenItems
    default:
        break
    }
}

override func numberOfSections(in collectionView: UICollectionView) -> Int {
    return 1
}

override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return dataSourceItems.count
}

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! ItemCell
    cell.cellImage.image = dataSourceItems[indexPath.row].image
    print(dataSourceItems.count)

    return cell
}
}

Wenn die Sammlung view-controller vorgestellt wird, ist es leer, was könnte das problem verursachen?

  • Haben Sie überprüfen Sie die Anzahl der Arrays und laden Sie Ihre Sammlung sehen?
  • Wo nennst du reloadData() auf der collection view-Instanz?
  • Ich habe es nicht nennen, muss ich?
  • Meine schlechte, Sie nicht haben zu, es ist ein UICollectionViewController
  • Ich habe es, es gibt kein problem
  • siehe meine Antwort.

Schreibe einen Kommentar