我遇到了自动布局的一个奇怪错误。
我有两个并排的按钮(确认和删除),在同一个 View 中,每个按钮的宽度都是它们 super View 的 50%,在某些情况下(当 test = true 时),我想隐藏确认按钮,所以删除按钮占用整个屏幕的宽度。
这是我的自动布局:
确认按钮:
删除按钮:
比例宽度是父 View 的 50% (1:2)。现在这是我的电话,发生在 viewWillAppear
中:
if test {
self.confirmButtonWidthConstraint.constant = 0
self.deleteButtonWidthConstraint.constant = (self.deleteButton.superview?.frame.width)!
}
然而,这样做之后的结果是:
检查 UI 调试器后,我发现奇怪的是,这个删除按钮现在的宽度为……480,起始 x 为 -160。所以我真的不知道这里发生了什么。请帮忙!
最佳答案
我可以建议一个不同的策略吗?
将按钮嵌入到堆栈 View (UIStackView
) 中,并将按钮设置为均匀填充。
然后您可以使用 button.isHidden = true
将按钮设置为消失。堆栈 View 将为您优雅地处理布局。
关于ios - 更新约束后,按钮未正确定位在自动布局中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46409720/