使用Swift / Storyboard制作2个50%宽度的工具栏/页脚按钮

时间:2015-05-06 01:29:44

标签: ios swift storyboard

我试图显示一个标题栏,图像,然后是两个按钮,几乎就像下面一样。主要区别在于我希望两个项目按钮的宽度为50%,每个按钮都是纯色(占据屏幕的整个底部)。我没有使用标签栏,因为按钮只是为了更改图像,而不是整个视图控制器。

screenshot

到目前为止,使用故事板,我只是停留在按钮上。我把它们作为条形按钮项目放在工具栏中。然后我尝试在控制器中设置它们的宽度:

@IBOutlet weak var firstButton: UIBarButtonItem!
@IBOutlet weak var secondButton: UIBarButtonItem!

override func viewDidLoad() {
    super.viewDidLoad()
    self.firstButton.width = self.view.bounds.width / 2
    self.secondButton.width = self.view.bounds.width / 2
}

screenshot

我相信它们已正确设置,但工具栏正在强制某些空间位于第一个按钮的前面。我还没有改变它们的背景颜色,但我希望一旦我完成间距就会很简单。

我对iOS开发很新,所以任何提示都会受到赞赏。我的目标是让它普遍适用,但我决定让它在iPhone锁定的肖像上工作。

4 个答案:

答案 0 :(得分:6)

使用Autolayout相对容易,您需要将按钮的宽度设置为等于SuperView并将乘数常量设置为0.5

或者将工具栏宽度设置为Superview with Multiplier 1.0,然后UIButtons等于工具栏的宽度,但乘数为0.5

像这样的东西

答案 1 :(得分:3)

以前的答案并没有解决问题,看起来有一些使用工具栏的内部填充。那可能无法为Bar Buttons添加约束。

我的实际解决方案是:

删除栏按钮和工具栏。在底部添加两个UIButtons。添加以下约束

第一个按钮

  • 领导超级视野的空间

第二个按钮

  • 领导超级视野的空间

第一个按钮和第二个按钮

  • 超级视图的底部空间
  • 使用0.5乘数
  • 的ImageView的比例宽度

答案 2 :(得分:1)

如果您正在使用自动布局,则需要将工具栏的宽度设置为等于宽度限制的容器视图。然后将两个项目的宽度设置为彼此相等,将这些间距设置为零。

无需手动设置宽度。

顺便说一句,如果你想要它是全宽的,不要忘记对你的UIImageView做同样的事情。

有用的链接:

http://www.raywenderlich.com/83129/beginning-auto-layout-tutorial-swift-part-1 http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1 http://www.raywenderlich.com/64392/video-tutorial-beginning-auto-layout

答案 3 :(得分:0)

Swift 5 使用故事板

您可以将 Flexible Space Bar Button Item 添加到您的工具栏,这将使您的图标间距相等。将它们放在您的 Bar Button Items 之间,它们会自动填充您工具栏中的空间。

见下文:

Storyboard Flexible Space Bar Button Item