Я пытался переместить некоторую часть своего приложения, чтобы адаптировать 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
}
Другая проблема, которую я есть то, что документация не самая лучшая, которую я видел, и я едва нахожу примеры.
Кто-нибудь? Спасибо !!!