隐藏其他按钮时使一个按钮居中的约束

时间:2016-11-16 21:28:10

标签: ios swift xcode uibutton autolayout

我在视图控制器上有两个按钮。它们的高度和宽度相等,并且在屏幕中心位置很好。 问题是在某些情况下,其中一个按钮是隐藏的。 当其中一个按钮被隐藏时,我希望另一个按钮居中。

对于我的生活,我一直无法弄清楚如何配置约束来实现这一目标。

我能够移动可见按钮,以便在隐藏其他按钮时居中,但只能在加载视图后执行此操作,这会使按钮“跳转”看起来很傻。

3 个答案:

答案 0 :(得分:9)

将两个按钮嵌入UIStackView

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

enter image description here

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

Button1 hidden == false (un-ticked)

button1 hidden == true(勾选)的结果:

Button1 hidden == true (ticked

答案 1 :(得分:0)

如果您能够将按钮放在正确的位置,请尝试设置动画以使其具有良好的效果。请注意,这只会限制约束中的更改,因此如果您正在执行其他操作以使按钮移动,则可能无效。

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

答案 2 :(得分:0)

像这样的故事板限制并不意味着移动,并且你可以通过不正确地执行此操作来导致很多UI问题。

我的推荐?它并不理想,只需添加第三个按钮即可。如果你必须隐藏一个按钮,只需隐藏它们,然后显示第三个按钮。