Я реализовал Appstore / Netflix, такой как пользовательский интерфейс, где есть UITableView и внутри каждой (пользовательской) ячейки есть горизонтальная прокрутка UICollectionView.
Каждая ячейка UITableView функционирует как делегат и источник данных для своего collectionView. Данные хранятся с помощью переменной внутри ячейки tableView, которая устанавливается во время вызова tableView cellForRow.
После установки новой переменной didSet выполняет некоторые действия и вызывает collectionView.ReloadData (), чтобы collectionView отображал текущие данные. Это вызывает задержки при прокрутке, вероятно, из-за каждого вызова collectionView.ReloadData ().
Данные - это структура с некоторыми метаданными и самим содержимым в массиве.
cellForRow:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: contentTableCellId, for: indexPath) as! ContentTableCell
cell.contentItem = contentItems[indexPath.row]
return cell
}
и внутри ContentTableCell:
var contentItem: ContentItem!{
didSet{
... //some simple text label actions.
self.collectionView.reloadData()
}
}