Первая ячейка ASCollectionNode загружается очень долго - PullRequest
0 голосов
/ 29 апреля 2020

Я пытался переместить некоторую часть своего приложения, чтобы адаптировать AsyncDisplayKit. В настоящее время у меня есть UIViewController, который содержит ASDisplayNode (с другими UIViews).

Этот ASDisplayNode содержит ASCollectionNode, который использует большую часть экрана (предварительно определенные размеры). У ASCollectionNode есть много предметов (около 600). Проблема, с которой я сталкиваюсь, заключается в том, что макет первого ASCellNode занимает больше секунды, что делает все это непригодным для меня. Если я резко уменьшу количество ячеек (примерно до 10), это будет нормально работать. Я понимаю, что все клетки инициализируются прямо из get go. Я не до конца понимаю, если это по замыслу или я делаю что-то не так. Поэтому я попытался использовать настройку диапазона:

 _columnsCollectionView.setTuningParameters(ASRangeTuningParameters(leadingBufferScreenfuls: 5, trailingBufferScreenfuls: 5), for: .display)

 _columnsCollectionView.setTuningParameters(ASRangeTuningParameters(leadingBufferScreenfuls: 10, trailingBufferScreenfuls: 10), for: .preload)

Это ничего не изменило.

Я также попытался перейти к инициализации блока:

func collectionNode(_ collectionNode: ASCollectionNode, nodeBlockForItemAt indexPath: IndexPath) -> ASCellNodeBlock {
    // this may be executed on a background thread - it is important to make sure it is thread safe
    let cellNodeBlock = { () -> ASCellNode in
        return TextureColumnCell()
    }

    return cellNodeBlock
}

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

Кто-нибудь? Спасибо !!!

...