我有一个UIStackView
,它包含登录页面的textFields和按钮。当用户拉起键盘时,UIStackView
的底部约束跟随键盘框架。
对于一个按钮(“尝试演示”)我希望它是默认高度或隐藏高度,具体取决于键盘压缩UIStackView
的程度。因此,我在按钮上放置了以下两个约束,将更高的优先级分配给第二个(默认高度):
因此,当高度降至0约束时,您可以看到按钮不是完全不可见的:
我想使用一个方法来监听约束何时变为零,然后响应它并完全隐藏按钮。我正在将约束连接到viewcontroller:
@IBOutlet weak var defaultHeightConstraint: NSLayoutConstraint! {
didSet {
DispatchQueue.main.async {
self.demoButton.isHidden = !self.defaultHeightConstraint.isActive
}
}
}
..但似乎约束是活跃的,即使它被重新划分优先级。是否有任何默认方式来检查约束是否满足?作为self.defaultHeightConstraint.isSatisfied
?我该怎么听这个事件?
编辑:实际上没有调用didSet
,因为约束不会改变..
答案 0 :(得分:0)
使用键盘的监听器,当键盘未隐藏时,您可以隐藏按钮并在键盘隐藏时显示按钮。