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

Posted

技术标签:

【中文标题】取消隐藏 UIStackView 元素时的动画方向【英文标题】:Direction of animation when un-hiding a UIStackView element 【发布时间】:2015-11-23 02:34:03 【问题描述】:

当我采用一个作为垂直堆栈视图元素的 UIView 并将该元素的“隐藏”属性从 true 更改为 false 时,更改会自动进行动画处理,并且元素会随着它变得可见而向下移动。我希望它向上移动。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

UIStackView 头文件中的UIStackViewDistribution 枚举伴随着fill 案例的以下注释:

当项目不适合(溢出)或填充(下溢)时,可用空间根据项目的压缩阻力或拥抱优先级进行调整,或者当它不明确时,根据排列顺序。

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

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

label.setContentHuggingPriority(UILayoutPriorityRequired, for: .vertical)

【讨论】:

【参考方案2】:

我刚刚在这里回答了一个类似的问题:Animate hidden property on UILabels in UIStackView causes different animations

设置UIViewcontentMode 属性似乎会影响UIStackView 内的UIView 动画的执行方式。

【讨论】:

以上是关于取消隐藏 UIStackView 元素时的动画方向的主要内容,如果未能解决你的问题,请参考以下文章

UIStackView,通过调整动画大小隐藏子视图

UIStackView 隐藏视图动画

UIStackView 显示/隐藏动画无法正常工作

UIStackView 显示/隐藏动画

UIStackView中UILabels上的动画隐藏属性导致不同的动画

如何正确地为隐藏在 UITableViewCell 中的 UIStackView 设置动画?