Как вызвать несколько идентификаторов для повторного использования, если я вручную добавил ячейки в раскадровку для collectionViewCells? - PullRequest
0 голосов
/ 06 октября 2018

Я практикую некоторое кодирование на collectionViews.Однако мне нравится работать в Main.storyboard, чтобы увидеть, с чем я работаю визуально.К сожалению, кажется, что это делает больше работы с моей стороны при работе в viewController, потому что это было бы намного быстрее, если бы это было сделано программно.

Я пытаюсь вызвать несколько идентификаторов повторного использования для collectionViewCell.Однако я знаю только как позвонить в одну ячейку.Теперь я не получаю никаких ошибок, я просто не знаю, как отобразить все ячейки при запуске программы.

Вот код.

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


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Fashion Cell 0", for: indexPath)
    return cell
}

Когда я запускаю приложение, я получаю это.

enter image description here

Обратите внимание, в Main.Storyboard я добавляю ячейки вручную. Пример : enter image description here

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Вы не можете таким образом. Создайте один массив из вашего числа изображений и установите его в collectionView.Не нужно больше ячейки в раскадровке.

 let video:[UIImage] = ["","","",""]


func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    return video.count
}


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

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)as! yourcellfile


    let image = video[indexPath.row]
    cell.img.image = image

    return cell

}

Вы можете пойти по этому пути.Это правильный метод визуализации коллекции.

0 голосов
/ 06 октября 2018

Делайте таким образом

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


    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        if indexPath.item == 0 {
       let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Fashion Cell 0", for: indexPath)
        return cell
    } 

     if indexPath.item == 1 {
       let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Fashion Cell 1”, for: indexPath)
        return cell
    } 
    //…… 


    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Fashion Cell 0", for: indexPath)
    return cell
    }

Хотя вы можете использовать switch вместо , если для лучшей читаемости

...