Я создал пользовательский UITableViewCell , который содержит collectionView.Эта настраиваемая ячейка соответствует протоколам UICollectionViewDelegate и UICollectionViewDataSource и управляет collectionView.
Но когда я использую эту настраиваемую ячейку в tableView, свойство visibleCells моего collectionView возвращает все 20 ячеек, даже если есть только 3 ячейки, которыевиден на экране.
Это приводит к ситуации, когда мой collectionView не использует ячейки повторно, поскольку считает, что все его ячейки видны на экране, и вызывает проблемы с памятью.
Вот моя реализация в tableViewController:
override func viewDidLoad() {
super.viewDidLoad()
guard let bundle = Bundle(identifier: "org.cocoapods.*****") else { return }
tableView.register(UINib(nibName: "CampaignCollectionViewContainerCell", bundle: bundle), forCellReuseIdentifier: "campaignContainerCellIdentifier")
}
.
.
.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "campaignContainerCellIdentifier") as? CampaignCollectionViewContainerCell else { fatalError() }
return cell
}
Я попытался изменить свойство visibleCells, но оно доступно только для получения.
Я думаю, это не имеет значения, но мой пользовательский UITableViewCell находится в частном модуле, а UITableViewController находится в моем основном проекте, который использует этот модуль.