Перезагрузка сбора данных Просмотреть внутри таблицы Просмотр ячейки (Swift) - PullRequest
0 голосов
/ 14 февраля 2019

Я столкнулся с проблемой с вложенным представлением коллекции внутри ячейки табличного представления.Содержимое загружается из онлайн-базы данных, и получение данных занимает некоторое время.Мой вопрос заключается в том, как сохранить данные для представления сбора до тех пор, пока содержимое не будет извлечено из онлайновой базы данных, а затем отобразить его.

class DiscoverViewCell: UITableViewCell {

@IBOutlet weak var categoryLabel: UILabel!

@IBOutlet weak var _collectionView: UICollectionView!

@IBAction func seeMoreAction(_ sender: Any) {

}

}

class MovieCollectionViewCell: UICollectionViewCell {

@IBOutlet weak var moviePicture: UIImageView!

@IBOutlet weak var movieTitleLabel: UILabel!


func updateCollectionCell(movie: MovieModel){
    moviePicture.image = movie.poster
    movieTitleLabel.text = movie.name
}

}

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

    guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MovieCell", for: indexPath) as? MovieCollectionViewCell else { return UICollectionViewCell()}

     cell.updateCollectionCell(movie: movieArray[indexPath.item])

    return cell
}
* 1015переопределить func tableView (_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "DiscoverCell") as? DiscoverViewCell else { return UITableViewCell()}

    cell.categoryLabel.text = categories[indexPath.item]

    setUpCell(cell)

    return cell
}

Кроме того, как можно отображать различное содержимое представлений коллекции внутри ячеек табличного представления в зависимости от метки, которая находится внутрикаждая ячейка табличного представления, но отделенная от представления коллекции. Раскадровка здесь

1 Ответ

0 голосов
/ 15 февраля 2019

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

Таким образом, если у вас есть модель для tableViewCell с вложенной моделью для вложенного collectionView, я бы лично добавил перечисление внутри этого collectionViewModel, которое будет использоваться для определения текущего состояния этого конкретного UICollectionView.Так, если, например, в UITableView имеется много ячеек, и пользователь быстро прокручивает их, каждый раз, когда tableViewCell отключается, это состояние будет использоваться для определения, должна ли ячейка отображать счетчик или если данные, которые были ранее получены, должныбыть представлен (загрузка против загружен).

...