我有一个100个字符串类型的cellNames项数组。我有一个集合视图,由一个包含100行customCollectionViewCell的部分组成。我在找这样的东西-

for cellName in cellNames {
   if cellName.index == cellNames[indexpath.row] {
     let cellName = cell.nameTextField
    }
}

所以总而言之,我需要索引0…100==cellForRowAt 0…100的cellName

最佳答案

看起来您正在创建100个静态单元格,并试图用cellNames填充它们。正确的方法是符合UICollectionViewDataSource并将项目数设置为cellNames的计数,并使用cellForItemAt中提供的indexPath访问数组的每个元素。

class ViewController: UIViewController {

    let cellNames = ["1", "2", "3"] // ....

    override func viewDidLoad() {
        super.viewDidLoad()

    }
}

extension ViewController: UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return cellNames.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "customCellId", for: indexPath) as! CustomCell
        let cellName = cellNames[indexPath.item]
        cell.nameTextField.text = cellName
        return cell
    }
}

10-07 17:18