Я внедрил ячейку динамического размера в ячейку представления коллекции в некоторых проектах и каждый раз сталкивался с проблемой, поэтому я не знал, как избавиться от этой проблемы.Для создания динамической ячейки я использовал эту технику связи .
Код, который я использовал для ячейки собственного размера.
if let objCollectionViewFlowLayout = self.collectionView.collectionViewLayout as? AdvertisementFlowLayout //Custom layout for left align cell if cell was in odd
{
objCollectionViewFlowLayout.estimatedItemSize = CGSize.init(width: 1.0, height: 1.0)
}
Ячейкакод (проснулся от пера)
override func awakeFromNib() {
super.awakeFromNib()
if #available(iOS 12, *) {
setupSelfSizingForiOS12(contentView: contentView)
}
self.objViewWidthConst.constant = floor((ScreenSize.SCREEN_WIDTH - 48.0) / 2.0) // 16.0 + 16.0 leading and trailing, 16.0 intercell spacing
self.layoutIfNeeded()
self.setupView()
}
когда загрузка будет выполнена, я использовал следующий код, иначе представление коллекции приведет к сбою приложения
self.collectionView.performBatchUpdates({
let range = Range(uncheckedBounds: (0, self.collectionView.numberOfSections))
let indexSet = IndexSet(integersIn: range)
self.collectionView.reloadSections(indexSet)
}) { (isCompleted) in
self.collectionView.reloadData()
}
Я получил этот вывод