У меня проблемы с анимацией изменения высоты в ячейке UICollectionView.Все ячейки содержат метку с текстом, поэтому ячейки имеют динамический размер и используют Auto Layout.Ячейка должна увеличиваться на 100 пунктов, когда я нажимаю на нее, и должна толкать другие ячейки вниз.
Я уже смотрел на этот вопрос: UICollectionView: Анимация изменения размера ячейки при выделении
Я тоже это проверил, та же проблема: Анимировать ячейки uicollectionview при выделении
Кажется, предполагается, что все ячейки имеют одинаковый размер, как и все ответыкажется, работает, но игнорировать клетки, которые больше, чем предполагаемый размер.Вот как это должно выглядеть:
Вот как это выглядит после вышеуказанных решений:
Трудновидите, но две нижние ячейки сгруппированы во вторую.Я заставил его работать, но это зависит от перезагрузки UICollectionView, и это заставляет весь вид исчезать на короткую секунду, а затем снова появляться.
Я изменяю размеры ячеек индивидуально с помощью метода sizeForItemAt.Это в методе didSelectItemAt, и я ближе всего к тому, чтобы заставить его работать.
self.questions[indexPath.row].open = !self.questions[indexPath.row].open
collectionView.collectionViewLayout.invalidateLayout()
cell.bgViewHeightConstraint?.constant += 100
UIView.animate(
withDuration: 0.55,
delay: 0.0,
usingSpringWithDamping: 0.5,
initialSpringVelocity: 3.0,
options: UIView.AnimationOptions(),
animations: {
collectionView.layoutIfNeeded()
}, completion: nil)
Даже при этом вид все еще мигает секунду и сбрасывается, так что вы можете видеть, что он снова раскладывается.