简体   繁体   English

Swift CollectionView 第一个单元格添加用户按钮和其他单元格从图像阵列加载

[英]Swift CollectionView first cell add user button and other cell load from image array

In my case, I am trying to create a UICollcetionView with first cell add button for add user and from second cell I need to load Image array string into another cells.就我而言,我正在尝试使用第一个单元格添加按钮创建一个UICollcetionView以添加用户,并且从第二个单元格中我需要将图像数组字符串加载到另一个单元格中。 Here, I am using two separate cell but I am not getting first cell into my output.在这里,我使用了两个单独的cell ,但我没有将第一个单元放入我的 output。 Please provide me solution or another best method.请为我提供解决方案或其他最佳方法。

I am trying to get below output我试图低于 output

在此处输入图像描述

Multiple Cell Code多个单元格代码

// MARK: CollectionView Delegate
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
    return 2
}

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

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    if indexPath.section == 0 {
        let firstCell = collectionView.dequeueReusableCell(withReuseIdentifier: "addusercell", for: indexPath) as! AddParticipantsCollectionViewCell
        return firstCell
    } else {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "userscollectionview", for: indexPath as IndexPath) as! ParticipantsCollectionViewCell
        cell.imageView?.image = self.imageArray[indexPath.row]
        return cell
    }
}

You need你需要

if indexPath.item == 0  {
    // first cell
}
else {

   // second cell
   cell.imageView?.image = self.imageArray[indexPath.item - 1]
}

Correct dataSource method ( remove it )正确的dataSource方法(删除它

func numberOfSections(in collectionView: UICollectionView) -> Int {
    return 1 // Section should set return 1 or default is optional 
}

And change numberOfItemsInSection to并将numberOfItemsInSection更改为

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return imageArray.count + 1
}

If you have two sections in the collectionView you also need to set the number of items in each individual section:如果您在 collectionView 中有两个部分,您还需要设置每个单独部分中的项目数:

    // MARK: CollectionView Delegate
    func numberOfSections(in collectionView: UICollectionView) -> Int {
      return 2
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
      if section == 0 {
        return 1 // return 1 item in cell (+ cell)
      } else {
        return imageArray.count
      }
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        if indexPath.section == 0 {
            let firstCell = collectionView.dequeueReusableCell(withReuseIdentifier: "addusercell", for: indexPath) as! AddParticipantsCollectionViewCell
            return firstCell
        } else {
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "userscollectionview", for: indexPath as IndexPath) as! ParticipantsCollectionViewCell
            cell.imageView?.image = self.imageArray[indexPath.row]
            return cell
        }
    }

I hope it's been of any help.我希望它有任何帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM