在特定的Collection View Cells上显示视图?

问题描述 投票:-1回答:1

我试图在我的集合视图控制器中将预编码的Page / View单元显示在它们各自的单元格上。

我没有使用故事板就创建了所有页面。

我创建了3个单元格,但现在我想弄清楚如何将每个视图放入各自的视图中。我创建了一个我的3个类(页面)的数组,但无法弄清楚如何将它们连接到“cellForItemAt”中的单独单元格我尝试使用indexPaths和collectionview.cellForItem(at:___)但我无法实现我想要的。

如何将阵列中的页面连接到正确的单元格?

谢谢

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
}
ios swift xcode collectionview
1个回答
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
    }
© www.soinside.com 2019 - 2024. All rights reserved.