Я заметил, что UICollectionView
звонит collectionView:cellForItemAtIndexPath:
на свой источник данных довольно много раз. Например, на каждом layoutSubviews
все ячейки «переконфигурированы», независимо от того, были ли они уже видимы или нет.UICollectionView ячейка настраивается слишком много раз
Когда collectionView:cellForItemAtIndexPath:
называется, мы должны:
Вашей реализация этого метода отвечает за создание, конфигурирования и возвращения соответствующей ячейки для данного элемента. . Вы делаете это, вызывая метод 3 вида коллекции и передавая идентификатор повторного использования, соответствующий тип ячейки, которую вы хотите. Этот метод всегда возвращает действительный элемент . После получения ячейки вы должны установить любые свойства, которые соответствуют данным соответствующего элемента, выполнить любую необходимую конфигурацию и вернуть ячейку.
Проблема в том, что конфигурирование ячейки не всегда является дешевой операцией, и я не понимаю, почему я должен перенастроить ячейки, которые уже настроены.
Как избежать избыточной конфигурации ячеек? Или что-то я не понимаю правильно?
Заканчивать CollectionView: willDisplayCellAtIndexPath и посмотреть, если он называется больше или меньше раз, чем cellForItemAtIndexPath. Вам действительно нужно использовать cFIAIP для размещения ячейки, wDCAIP - это то, где вы должны выполнять фактическую логику отображения. –