【发布时间】:2019-05-31 23:26:59
【问题描述】:
我正在尝试像这样隐藏 UIStackView 的子视图:
UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 2.0,
delay: 0, options: [.curveEaseOut], animations: {
self.label.isHidden = true
self.label.alpha = 0.0
self.stackView.layoutIfNeeded()
})
但是,使用此代码后标签会立即消失。我怀疑这是因为将 isHidden 设置为 true,这是折叠所必需的。
有没有办法用动画隐藏和折叠 UIStackView 的 subvew?或者根本不使用 UIStackView 会更好?
【问题讨论】:
-
是否可以修改子视图的高度?在动画块中,将高度和 alpha 设置为 0,完成后您可以在将 isHidden 设置为 true 的同时重置高度和 alpha
-
@Andrey 如果可能的话,请您向我们展示一下您的动画目前正在做什么?还有一件事,如果您要隐藏标签,那么为什么要设置 alpha?
-
我还没有尝试过这个......解决方案就像在
UIView.AnimationOptions的数组中添加键showHideTransitionViews一样简单......Apple docs状态“这个键导致视图隐藏或显示(而不是删除或添加)...”。 -
我试过你的代码,发现标签慢慢塌陷,最后变得不可见。如果不是这样,你预计会有什么影响?
标签: ios swift uistackview