在两个原型之间划分单元数

时间:2019-05-22 20:57:07

标签: swift uitableview uicollectionview

作为我的初学者,我遇到的问题可能不是那么容易问的。 我的应用程序中有两个原型集合视图单元格,我们将它们分别称为Cell1Cell2,它们都位于同一部分。

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell1", for: indexPath) as? customCell {
        return cell
    } else if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell2", for: indexPath) as? customCell {
        return cell
    }
    return UICollectionViewCell()
}

我的问题从这里开始: 在numberOfItemsInSection中,我想说例如从原型Cell1绘制3个单元格,从Cell2绘制5个单元格。 我不知道如何在两个原型之间划分单元数,有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试

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

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

    if (0...2).contains(indexPath.item) { 
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell1", for: indexPath) as! customCell {
        return cell 
    } else { 
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell2", for: indexPath) as? customCell {
        return cell
    }

}

答案 1 :(得分:0)

您有几种选择。如果您知道将要拥有多少个电池,可以说8个,您只需进行一次简单的切换即可。

switch indexPath.item {
    case 0,1,2,3:
         let cell = .....
         return cell
     case 4,5,6,7:
         let cell2 = ....
          return cell
     default:
          let cell = ...
          return cell
}

您还可以执行模数方法,这将为偶数编号提供cell1,为不均匀数提供cell2。 在不直接了解您的意图的情况下,我只能给您一个广泛的答案。