У меня есть горизонтальный UIStackView, содержащий несколько упорядоченных подпредставлений.
Я хочу удалить одно упорядоченное подпредставление (назовем его A), когда пользователь нажимает кнопку, но перед этим я хочу сделать быстрыйанимация.Я хочу сделать свою собственную анимацию, поэтому я не могу анимировать только stackView.removeArrangedSubview
, которая будет выполнять базовую анимацию по умолчанию, а не ту, которая мне нужна.
Внутри A у меня есть другое представление (назовем его B) с центрами X и центрированными с использованием Auto Layout.
Когда я анимирую константу A.widthAnchor. моего организованного Sububview A в 0, так что другие arrangedsubviews
постепенно приходят на место этого, потомки B теряют непосредственно перед анимацией свой CenterX и уходят влево,Или, может быть, он не теряет centerX, но он центрируется на крошечном A (который имеет ширину = 0 и начинается слева), но A не должен иметь ширину до 0 сразу, но после завершения анимации ...
Я стараюсь изо всех сил, чтобы ясно объяснить, но я знаю, что это может сбить с толку.Вот видео, показывающее проблему.Изображение (B), которое в виде arrangedsubview
A (взяв весь экран) «прыгает» слева до начала анимации.
https://drive.google.com/open?id=1nTDRe5zirbuQi86WVBTuU-iDU8aq0lcw
Вот мой очень простойкод для создания этой анимации:
UIView.animate(withDuration:4,delay:0, options:.curveEaseInOut, animations : {
self.c.constant = 0 // c is A.widthAnchor constraint
self.stackView.layoutIfNeeded()
},completion: { _ in
// done
})