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