Бесконечное количество строк в представлении коллекции - PullRequest
0 голосов
/ 27 июня 2019

У меня есть представление коллекции, где я показываю дни недели с днями месяца и хочу сделать так, чтобы они прокручивались на недели, месяцы или годы.

daysCollectionView

Следующий код является точкой:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 1000000 //number of days
}

Когда я попробовал приведенный выше код, я заметил огромную разницу в производительности при загрузке контроллера, а также выделение памяти было увеличено на 180 МБ (до этогобыло 30 ячеек).

Как я могу установить количество ячеек в Бесконечное, чтобы я мог прокручивать годы, или есть ли способ динамического изменения количества ячеек каждый раз, когда я делаю шаг вперед по неделе, месяцу или году.

Каков наилучший способ достичь этого?

1 Ответ

0 голосов
/ 27 июня 2019

Повторное использование ячейки подходит для выделения памяти, тогда как предварительная выборка ячейки не так хороша для выделения памяти.

используйте collectionView.isPrefetchingEnabled = false, чтобы сбалансировать распределение памяти с опытом пользователя.

Здесь документ Apple , isPrefetchingEnabled

При значении true представление коллекции запрашивает ячейки заблаговременно до того, как они будут отображены, распределяя рендеринг по нескольким проходам макета.При значении false ячейки запрашиваются так, как они нужны для отображения, часто с несколькими ячейками, запрашиваемыми в одном цикле рендеринга.Установка этого свойства в false также отключает предварительную выборку данных.Значение по умолчанию для этого свойства - true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...