Выкладывание вида перед выполнением анимации - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь добавить пользовательскую анимацию в 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()
            })
}
...