Направление анимации при отображении элемента UIStackView

Когда я беру UIView, который является элементом представления вертикального стека, и изменяю свойство «скрытый» этого элемента с true на false, изменение автоматически анимируется, и элемент перемещается вниз по мере того, как становится видимым. Вместо этого я хочу, чтобы он двигался вверх. Есть ли способ сделать это?


person Christopher Simmons    schedule 23.11.2015    source источник


Ответы (2)


Перечисление UIStackViewDistribution в заголовочном файле UIStackView сопровождается следующим комментарием для случая fill:

Когда элементы не помещаются (переполняются) или заполняют (незаполняются), доступное пространство корректируется в соответствии с приоритетами сжатия или сжатия элементов, или, когда это неоднозначно, в соответствии с порядком расположения.

Вы можете повлиять на внешний вид анимации элементов, установив сопротивление сжатию содержимого и приоритеты охвата содержимого для элементов.

Так, например, при скрытии и отображении меток в вертикальном представлении стека с распределением fill вы можете заставить каждую метку сжиматься и увеличиваться по сравнению с ее положением в arrangedSubviews, гарантируя, что она имеет требуемый приоритет охвата содержимого для вертикальной оси:

label.setContentHuggingPriority(UILayoutPriorityRequired, for: .vertical)
person jamesk    schedule 06.01.2017

Я только что ответил на аналогичный вопрос здесь: Анимировать скрытое свойство на UILabels в UIStackView вызывает разные анимации

Установка свойства contentMode UIView влияет на то, как выполняется анимация UIView внутри UIStackView.

person shadowhorst    schedule 20.10.2016