У меня есть UITableViewController
с каждым UITableViewCell
содержимым UICollectionView
где содержимое UICollectionView
должно быть полностью видно. Моя проблема заключается в том, что при возврате высоты UITableViewCell
я не могу вернуть правильную высоту, потому что я не могу понять, как вычислить contentSize
а UICollectionView
для его содержания.
Да, вы можете это сделать.Вы должны установить оценочную высоту для tableview, а также если вы хотите динамическую высоту tableview.
Вы должны убедиться, что ваши ячейки имеют точно такую же высоту, как и представление коллекции.При настройке ячеек во внешнем tableview попробуйте перезагрузить данные во внутреннем collectionview, иначе из-за многоразового использования API логики ячеек не будет различать предыдущее представление коллекции.
Усовершенствованный:
У меня был случай, когда я должен был хранить tableview внутри клетки.
Внутренняя ячейка выглядит так, где хранится tableview.
Обычный
}
Высота моего внешнего tableview вычисляется автоматическим размером, но для внутреннего tableview мне нужно указать высоту самостоятельно.
Я столько раз читал об этом. Не следует помещать CollectionView в TableViewCell. Это может вызвать множество проблем (например, падение кадров). Вы пробовали использовать StackView вместо этого? Вы пробовали AsyncDiplayKit?
Извините, но вы не можете использовать UITableViewAutomaticDimension для определения размера ячейки с помощью UICollectionView внутри, поскольку представление коллекции не имеет правильного внутреннего размера содержимого. Следует перегрузить метод height UITableViewDelegate:
И верните правильную высоту из этого метода.
Другой метод-создание пользовательского представления, содержащего UICollectionView и управляющего содержимым представления коллекции (пример из моего кода):
Это представление возвращает правильный внутренний размер содержимого, поэтому его можно вставить в ячейку с автоматической высотой размера.