【发布时间】:2015-11-23 02:34:03
【问题描述】:
当我采用一个作为垂直堆栈视图元素的 UIView 并将该元素的“隐藏”属性从 true 更改为 false 时,更改会自动进行动画处理,并且元素会随着它变得可见而向下移动。我希望它向上移动。有没有办法做到这一点?
【问题讨论】:
标签: ios animation uistackview
当我采用一个作为垂直堆栈视图元素的 UIView 并将该元素的“隐藏”属性从 true 更改为 false 时,更改会自动进行动画处理,并且元素会随着它变得可见而向下移动。我希望它向上移动。有没有办法做到这一点?
【问题讨论】:
标签: ios animation uistackview
UIStackView 头文件中的UIStackViewDistribution 枚举伴随着fill 案例的以下注释:
当项目不适合(溢出)或填充(下溢)时,可用空间根据项目的压缩阻力或拥抱优先级进行调整,或者当它不明确时,根据排列顺序。
您可以通过设置项目的内容压缩阻力和内容拥抱优先级来影响项目动画的外观。
因此,例如,当在具有 fill 分布的垂直堆栈视图中隐藏和显示标签时,您可以通过确保每个标签具有所需的内容拥抱优先级来使每个标签从其在 arrangedSubviews 中的位置收缩和增长纵轴:
label.setContentHuggingPriority(UILayoutPriorityRequired, for: .vertical)
【讨论】:
我刚刚在这里回答了一个类似的问题:Animate hidden property on UILabels in UIStackView causes different animations
设置UIView 的contentMode 属性似乎会影响UIStackView 内的UIView 动画的执行方式。
【讨论】: