Как сделать индекс ячейки path.row == индексом элементов в массиве? - PullRequest
0 голосов
/ 06 июля 2018

У меня есть массив из 100 элементов с именем cellNames типа String. У меня есть представление коллекции, состоящее из 1 раздела с 100 customCollectionViewCell строк в нем. Я ищу что-то вроде этого -

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

Итак, для суммирования мне нужно cellName для индекса 0 ... 100 == cellForRowAt 0 ... 100

1 Ответ

0 голосов
/ 06 июля 2018

Похоже, вы создаете 100 статических ячеек и пытаетесь заполнить их cellNames. Правильный подход заключается в том, чтобы соответствовать UICollectionViewDataSource и устанавливать количество элементов на cellNames и использовать indexPath, предоставленный в cellForItemAt, для доступа к каждому элементу вашего массива.

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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...