我有一个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
}
}