в представлении коллекции первая ячейка всегда пуста

-3

У меня есть пользовательский вид коллекции в Viewcontroller, всякий раз, когда мой Collection View загружен, я всегда получаю свою первую ячейку пустой. Как удалить эту пустую ячейку.

Изображение 174551

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

    return collectionData.count
}

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

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

    let collectionData = self.collectionData[indexPath.row]


    cell.NameLbl.text       = collectionData["name"] as? String



    return cell

}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    let Info: NSDictionary = self.collectionData[indexPath.item] as! NSDictionary


    let vc = self.storyboard?.instantiateViewController(withIdentifier: "edit") as! editVC
    self.navigationController?.pushViewController(vc, animated: false)



}
  • 0
    Показать свой проверенный код до сих пор?
  • 0
    Все данные являются динамическими? Показать вашу коллекцию источников данных Logic
Показать ещё 4 комментария
Теги:
uicollectionview

1 ответ

0
Лучший ответ

В зависимости от того, что вы должны обрабатывать, скрывая первый элемент, есть опции буксировки, которые вы, возможно, захотите реализовать:

1- Если вы можете удалить первый объект из источника данных (массив collectionData), вы можете просто удалить из него первый элемент:

В вашем представлении контроллер (viewDidLoad()) можно реализовать:

override func viewDidLoad() {
    .
    .
    .

    collectionData.remove(at: 0)

    .
    .
    .
}

2-, если вам необходимо сохранить файл collectionData как нет, не удаляя первый элемент, но он не должен отображаться в пользовательском интерфейсе, вам необходимо реализовать UICollectionViewDataSource следующим образом:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    // subtract 1
    return collectionData.count - 1
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! collectionCell

    // add 1 to indexPath.row
    let collectionData = self.collectionData[indexPath.row + 1]  

    cell.NameLbl.text = collectionData["name"] as? String

    return cell

}

Это должно привести к отображению представления коллекции, как ожидалось, без редактирования массива источников данных collectionData.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню