隐藏另一个button时居中一个button的约束

我有一个视图控制器上的两个button。 它们高度和宽度相等,间隔很好,以屏幕为中心。 问题是,在某些情况下,其中一个button是隐藏的。 当其中一个button被隐藏时,我想让另一个button居中。

对于我的生活,我一直无法弄清楚如何configuration约束来实现这一点。

我可以移动可见button,使其居中,如果另一个button被隐藏,但似乎只能加载视图后,这使得button“跳”,看起来很愚蠢。

UIStackViewembedded两个button:

并根据您的需求调整其设置:

在这里输入图像说明


结果与button1 hidden == false(未勾选):

Button1 hidden == false(未勾选)

隐藏button1的结果== true(打勾):

Button1 hidden == true(打勾

如果你能够把button放在正确的位置,试着给它制作animation效果。 请注意,这只会影响约束条件的变化,所以如果您正在做其他事情来使button移动,它可能无法正常工作。

 UIView.animate(withDuration: 0.5, animations: { //do whatever you're doing to make the button 'jump' to the right position here self.view.layoutIfNeeded() }) 

这样的故事板约束并不意味着移动,你可以通过不正确地做到这一点,导致大量的用户界面问题。

我的build议? 这并不理想,但只需添加第三个button。 如果必须隐藏一个button,只需隐藏两个button,然后显示第三个button。