У меня есть экран чата, созданный с помощью UICollectionView, и есть нижнее представление контейнера, которое содержит текстовое представление и некоторые кнопки
Когда я обновляю нижнее ограничение представления контейнера и вызываю layoutIfNeeded, это приводит к странным "мигающая анимация на ячейках.
На willDisplayCell я сделал это
UIView.performWithoutAnimation {
cell.layoutIfNeeded()
}
Но похоже, что это ни на что не влияет.
Я использую Typist для работы с клавиатуройи вот как я анимирую свои ограничения
keyboard
.toolbar(scrollView: mainView.chatCollectionView)
.on(event: .willChangeFrame) { [weak self] options in
guard let self = self else { return }
guard self.mainView.sendMessageTextView.isFirstResponder else { return }
let height = options.endFrame.height
self.mainView.bottomContainerViewBottomConstraint.constant = -max(0, height - self.view.safeAreaInsets.bottom)
UIView.animate(withDuration: 0, delay: 0, options: .curveEaseIn, animations: {
self.mainView.layoutIfNeeded()
}, completion: { _ in })
}
.on(event: .willHide) { [weak self] options in
guard let self = self else { return }
self.mainView.bottomContainerViewBottomConstraint.constant = 0
UIView.animate(withDuration: 0, delay: 0, options: .curveEaseIn, animations: {
self.mainView.layoutIfNeeded()
}, completion: { _ in })
}
.start()
Также возврат к прослушивателям клавиатуры по умолчанию через NotificationCenter ничего не сделал, поэтому я не подозреваю, что проблема в библиотеке.
Как вы можете видеть на этомвидео ячейки как бы "мигают", есть ли способ остановить это мигание?
https://www.youtube.com/watch?v=sjZ62df5i2w