Swift CollectionView (фатальная ошибка: индекс вне диапазона) - PullRequest
0 голосов
/ 17 сентября 2018

Я реализую UICollectionView внутри каждой ячейки UITableView. Теперь я получаю данные из API и храню эти данные в массиве, и проблема заключается в том, что метод делегата UICollectionView numberOfItemsInSection, конечно, вызывается еще до того, как массивзаполняется данными, поэтому я получаю индекс из-за ошибки диапазона.Вопрос в том, как задать значение по умолчанию для возвращаемого счетчика или как изменить массив.Вот код, который я использую:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  //  let cell = collectionView.superview as! MainTableViewCell
 //   let index = tableView.indexPath(for: cell)
    let countIndex = self.consultations[collectionView.tag].images.count

    return countIndex
}

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Я решил проблему другим методом.

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    let cell = collectionView.superview?.superview?.superview as! MainTableViewCell
    print("SSSSSSSSSSSSSSSSS\(cell)")
    let index = self.tableView.indexPathForRow(at: cell.center)
    print("EEEEEEEEEEEEEE\(index?.row)")
    let countIndex = self.consultations[index?.row ?? 00].images.count

    return countIndex
}
0 голосов
/ 17 сентября 2018

Вам нужно проверить найденный массив и его количество.

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if let consultationsTmp = self.consultations, let colTag = consultationsTmp[collectionView.tag],let imagesTmp = colTag.images
            {
      return imagesTmp.count
            }
return 0
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...