Когда я беру UIView, который является элементом вертикального представления стека и изменяет свойство «скрытое» этого элемента с true на false, это изменение автоматически анимируется, и элемент перемещается вниз, когда он становится видимым. Я хочу, чтобы он двигался вверх. Есть ли способ сделать это?Направление анимации при скрытии элемента UIStackView
ответ
Я просто ответил на подобный вопрос здесь: Animate hidden property on UILabels in UIStackView causes different animations
Значение по UIView
«s contentMode
свойства, кажется, влияет на способе выполняется UIView
анимации внутри UIStackView
.
UIStackViewDistribution
перечисления в файле заголовок UIStackView сопровождается следующим комментарием для fill
случая:
Когда элементы не помещаются (переполнение) или заполнить (сгущенный) пространства доступных корректировок происходят в соответствии с compressionResistance или обнимать приоритеты предметов, или когда это неоднозначно, в соответствии с порядком размещения.
Вы можете повлиять на внешний вид анимации элементов, установив сопротивление сжатию содержимого и приоритеты в отношении содержимого элементов.
Так, например, при скрытии и отображении меток в вертикальном стеке с распределением fill
вы можете сделать каждую метку сжатой и вырасти из своего положения в arrangedSubviews
, гарантируя, что она имеет требуемый приоритет обхода содержимого для вертикальной оси :
label.setContentHuggingPriority(UILayoutPriorityRequired, for: .vertical)