我在UIStackView
中看到了here非常流畅的隐藏/显示子视图的动画。
我尝试在自己的应用程序中重现它,但我遇到了问题。
在动画处理过程中隐藏的视图不会调整大小。它只等到动画结束然后消失。与上面链接的示例中的clear button
相反。
我的代码:
UIView.animate(withDuration: 0.5,
delay: 0.0,
usingSpringWithDamping: 0.9,
initialSpringVelocity: 1,
options: [],
animations: {
self.acceptDeclineBar.isHidden = !newState
self.view.layoutIfNeeded()
},
completion: nil)
问题
UIStackView
是否可以免费为hide / show调整动画大小,或者我是否需要使用高度约束为自己实现?
答案 0 :(得分:0)
您的视图(self.acceptDeclineBar)
将在动画完成时隐藏。尝试在动画前隐藏。
self.acceptDeclineBar.isHidden = !newState
UIView.animate(withDuration: 0.3){ [weak self]
self?.view.layoutIfNeeded()
}
或者不是隐藏你可以使用高度约束
acceptDeclineBarHeightConstraint.constant = newState ? 60 (whatever Visbale size) : 0 (Hide)
UIView.animate(withDuration: 0.3){ [weak self]
self?.view.layoutIfNeeded()
}