我正在尝试在集合视图控制器中将预编码的页面/视图单元格显示在它们各自的单元格上。
我没有使用情节提要板创建了所有页面。
我已经创建了3个单元格,但是现在我试图弄清楚如何将每个视图放入各自的视图中。我创建了一个由3个类(页面)组成的数组,但无法弄清楚如何将它们连接到“ cellForItemAt”中的单独单元格,我尝试使用indexPaths和collectionview.cellForItem(位于___),但是我无法实现我想要的。
如何将数组中的页面连接到正确的单元格?
谢谢
let pages = [AboutPageCell, MainPageCell, InfoPageCell]
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 0
}
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath)
return cell
}
答案 0 :(得分:0)
首先将其添加到ViewController
let cellIdentifier = ["AboutPageCell", "MainPageCell", "InfoPageCell"]
然后在viewDidLoad
中注册您的单元格,如
tableView.register(AboutPageCell.self, forCellReuseIdentifier: cellIdentifier[0])
tableView.register(MainPageCell.self, forCellReuseIdentifier: cellIdentifier[1])
tableView.register(InfoPageCell.self, forCellReuseIdentifier: cellIdentifier[2])
您的cellForItemAt
将
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
var cellToReturn = collectionView.dequeueReusableCell(withIdentifier: cellIdentifier[indexPath.row])
switch indexPath.row {
case 0:
let aboutPageCell = cellToReturn as! AboutPageCell
// Configure you propertie here
cellToReturn = aboutPageCell
case 1:
let mainPageCell = cellToReturn as! MainPageCell
// Configure you propertie here
cellToReturn = mainPageCell
case 2:
let infoCell = cellToReturn as! InfoPageCell
// Configure you propertie here
cellToReturn = infoCell
default:
break
}
return cellToReturn
}