我被一个奇怪的自动布局错误卡住了。更新约束后按钮位置不正确自动布局
我有两个按钮(确认和删除)并排,在相同的视图中,每个都取自己的超视图的50%的宽度,在某些情况下(当test = true时),我想隐藏确认按钮所以删除按钮会占用屏幕的所有宽度。
这里是我的自动布局:
确认按钮:
删除按钮:
镨比例宽度是超视图的50%(1:2)。现在,这里是我的电话,在viewWillAppear
发生:
if test {
self.confirmButtonWidthConstraint.constant = 0
self.deleteButtonWidthConstraint.constant = (self.deleteButton.superview?.frame.width)!
}
但是,这样做在此之后的结果:
和检查UI调试后,我可以看到,奇怪的是,这现在删除按钮的宽度为... 480,起始x为-160。所以我不知道这里发生了什么。请帮忙!
如果您的约束使用Autolayout确定的数据(例如视图的宽度),则应根据确切用例在'viewDidLayoutSubviews()'或'viewWillLayoutSubviews()'中调用相关代码。 –
感谢您的回答。我尝试过,但仍得到相同的结果。 – Someday