我从 Storyboard创建了一个 Collection View Controller ,并将其自定义类设置为 ItemCollectionVC
,将其单元格的自定义类设置为 ItemCell
,并将其重用标识符设置为单元格
这是我的 ItemCollectionVC
类:
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
}
}
当 collection view controller 出现时,它是空的,这可能是什么问题?
最佳答案
几乎每次我都在 TableView 或 CollectionView
中遇到此问题时,以下三种情况之一导致了此问题:
1) 你的 ViewController
不是你的 UICollectionView
的数据源
2) numberOfRows
或 numberOfSections
方法返回 0
3) 您的单元格的高度为 0,要么是由于约束问题,要么是 heightForCell
方法没有/未正确实现。
不可能说出这些问题中的哪一个是您的问题,并且您总是有可能遇到一些奇怪的事情。在探索不太可能的选项之前,请确保这些都不是您的问题。
关于ios - Collection View cellForItemAt indexPath 未被调用(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40068161/