Я пытаюсь добавить пользовательскую анимацию в UICollectionViewCell.Анимация удаления работает нормально, но есть проблема с анимацией вставки, потому что кадр вида начинается с конечного значения.
Я пытаюсь найти способ обновить кадр вида, а затемвызвать анимацию.
Есть ли другой способ принудительно заставить представление разметиться так, чтобы оно могло генерировать правильную анимацию?
Я пробовал что-то в этом направлении, и снова это работает при удалениипотому что начальный кадр отличается от размера, но при вставке вид уже в конечном размере.Если я попытаюсь print("view.layer.animationKeys()")
, я не вижу анимацию, сгенерированную блоком.
Я думал о создании CABasicAnimations вручную, но, похоже, это не влияет на подпредставления, поэтому мне придется пройти иДиспетчер анимации для каждого вида.
func handle(sizeChange: (from: CGSize, to: CGSize), duration: TimeInterval) {
self.heightConstraint.constant = sizeChange.from.height
self.layoutIfNeeded()
UIView.animate(withDuration: duration, animations: {
self.heightConstraint.constant = sizeChange.to.height
self.layoutIfNeeded()
})
}