如果没有兄弟,Xcode 9自动布局X中央

Wim*_*nsa 0 ios autolayout swift

在Xcode中,当使用自动布局时,我想要定位一个按钮,这样如果这个按钮没有兄弟按钮,那么它应该对齐X中心,否则它们可以并排放置.

我试过用yellow.leadingSpace来superview> = 20,yellow.alignX到superview,但是它不工作,黄色按钮总是留在左边.

在此输入图像描述

小智 5

正如Uma已经建议你可以使用一个UIStackView.只需将两个按钮添加到UIStackView并设置间距即可.你也可以在没有UIStackView约束组合的情况下做到这一点:

  1. 将水平中心约束添加到第一个按钮.
  2. 将此约束的优先级更改为750.
  3. 在按钮之间添加间距约束.
  4. 当第二个按钮被隐藏时,您需要通过禁用间距约束buttonPaddingConstraint.isActive = false.
  5. 如果再次显示第二个按钮,则需要通过以下方式重新添加间距约束: leftButton.leadingAnchor.constraint(equalTo: rightButton.trailingAnchor, constant: 20).isActive = true

如果要隐藏其中一个按钮的动画,结果取决于使用方法.如果您要使用,请UIStackView查看下图中的"第一个按钮"和"第二个按钮".如果你没有UIStackView看看"第三个按钮"和"第四个按钮". 自动布局

我在这里上传了包含两个选项的xcode项目.