У меня есть следующая реализация в приложении, где есть табличное представление, где каждая ячейка табличного представления содержит представление коллекции.
Здесь количество ячеек в представлении коллекции будет зависеть от данных в ячейке табличного представления и будет различным для каждой строки. Например, в 1-м ряду 3 карты, во 2-м ряду 1 и в 3-м ряду 2.
Проблема в том, что я получаю 3 ячейки представления коллекции вместо 1 во второй ячейке.
Представление таблицы
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.groupedJobIds.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: JobTableViewCellCollection.CellReuseIdentifier) as? JobTableViewCellCollection {
var jobIds = self.groupedJobIds[indexPath.row]
cell.delegate = self
if jobIds != [] {
cell.bindJobs(jobIds)
}
return cell
}
return UITableViewCell()
}
Ячейка таблицы / Сборник
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.jobIds.count //It returns 1
}
//This method is called 3 times
func collectionView(_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: JobCollectionViewCell.CellReuseIdentifier, for: indexPath) as? JobCollectionViewCell
cell?.delegate = self
cell?.bindJob(jobId)
return cell!
}
Как видите, первый метод возвращает 1 как numberOfItemsInSection. Но второй метод вызывается 3 раза. Я что-то упустил?