取消隐藏UIStackView元素时的动画方向

Chr*_*ons 10 animation ios uistackview

当我将UIView作为垂直堆栈视图的元素并将该元素的"hidden"属性从true更改为false时,更改会自动设置动画,并且元素在变为可见时向下移动.我希望它向上移动.有没有办法做到这一点?

jam*_*esk 5

UIStackViewDistributionUIStackView头文件中的枚举附有以下针对该fill案例的注释:

当项目不适合(溢出)或填充(下溢)时,可用空间调整根据项目的compressionResistance或拥抱优先级发生,或者在不明确时根据排列顺序发生.

您可以通过设置项目的内容压缩阻力和内容拥抱优先级来影响项目动画的外观.

因此,例如,当在具有fill分布的垂直堆栈视图中隐藏和显示标签时,您可以arrangedSubviews通过确保每个标签从垂直轴的所需内容拥抱优先级来缩小并从其位置增长:

label.setContentHuggingPriority(UILayoutPriorityRequired, for: .vertical)
Run Code Online (Sandbox Code Playgroud)


sha*_*rst 2

我刚刚在这里回答了一个类似的问题:Animate hide property on UILabels in UIStackView Causes differentAnimations

设置UIView的属性似乎会影响an 内动画的执行contentMode方式。UIViewUIStackView