我有一个包含textFields和登录页面按钮的UIStackView。当用户拉起键盘时,UIStackView的底部约束跟随着键盘框架。

对于一个按钮(“试用演示”),我希望它要么是默认高度,要么是隐藏的,这取决于键盘对UIStackView的压缩程度。因此,我在按钮上设置了以下两个约束,并将更高的优先级分配给第二个(默认高度):

因此,当高度下降到0约束时,您可以看到按钮并不是完全不可见的:

我想使用一种方法来侦听约束何时变为零,然后响应它并完全隐藏按钮。我将约束连接到视图控制器,如下所示:
@IBOutlet weak var defaultHeightConstraint: NSLayoutConstraint! {
didSet {
DispatchQueue.main.async {
self.demoButton.isHidden = !self.defaultHeightConstraint.isActive
}
}
}。。但似乎约束是活动的,即使它是被剥夺的。是否有任何默认的方法来检查是否满足约束?作为self.defaultHeightConstraint.isSatisfied?我如何监听这个事件呢?
编辑:实际上didSet不会被调用,因为约束没有改变。
发布于 2017-10-31 01:29:38
使用键盘的侦听器,当键盘未隐藏时,您可以隐藏按钮,并在键盘隐藏时显示按钮。
https://stackoverflow.com/questions/47020950
复制相似问题