Я использую UICollectionReusableView
в качестве заголовка раздела UICollectionView
. Я включил «липкие заголовки» с помощью:
let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout
layout?.sectionHeadersPinToVisibleBounds = true
Я вставляю новые разделы в коллекцию с помощью:
collectionView.performBatchUpdates({
self.collectionView.insertSections(IndexSet(integersIn: collectionView.numberOfSections...viewModel.numberOfSections - 1))
}, completion: nil)
Если вставка происходит при прокрутке коллекции (включен bounce), заголовок на некоторое время исчезнет (см. GIF ниже). Как избежать такого поведения?
Я использую iOS 12.1.4, но такая же проблема возникает и на симуляторах iOS 11.x и 12.x.
Проблема не возникает, если эффект отскока отключен, но я хочу оставить его включенным для более плавного ощущения прокрутки. Я пытался аннулировать макет до/после обновления безрезультатно. Спасибо за советы.
EDIT (26/02/2019)
Временное решение: перенос вставки в performWithoutAnimation
блокирует исчезновение заголовка решения, но, очевидно, отключает анимацию перезагрузки.
UIView.performWithoutAnimation {
collectionView.performBatchUpdates({
self.collectionView.insertSections(IndexSet(integersIn: collectionView.numberOfSections...viewModel.numberOfSections - 1))
}, completion: nil)
}