使用Swift/Storyboard创建两个宽度为50%的工具栏/页脚按钮。

5
我想要显示一个标题栏、图像和两个按钮,就像下面的图片一样。主要的区别是我希望这两个按钮的宽度为50%,并且每个按钮都是一种纯色(占据整个屏幕底部)。我没有使用选项卡栏,因为这些按钮只是用来更改图像,而不是整个视图控制器。
到目前为止,使用Storyboard,我只卡在了按钮上。我将它们放在工具栏中作为条形按钮项。然后我尝试在控制器中设置它们的宽度:
@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
}

截图

我相信它们被正确地设置了,但工具栏强制在第一个按钮前面留下一些空间。我甚至还没有改变它们的背景颜色,但我希望一旦我完成间距调整,这将会很简单。

我对iOS开发还比较新,所以欢迎任何提示。我希望它能普遍适用,但如果它能在iPhone锁定纵向上运行,那就可以了。

4个回答

7

使用自动布局相对容易,您需要将按钮的宽度设置为SuperView并将乘数常量设置为0.5。

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

就像这样:


由于某些原因,我无法将按钮固定,而工具栏已经设置为固定到父视图并具有前导和尾随空间。 - Tom Prats
也许最好的方法是实现您的目标,即移除工具栏并将一个UIView与其父视图宽度相等放置在那里,然后在UIView中插入两个等宽的按钮,乘数为0.5。 - Vincent
是的,这就是我最终做的。 - Tom Prats

3
之前的回答似乎没有解决问题,使用工具栏时可能会出现一些内部填充。此外,您可能无法向工具栏按钮添加约束条件。
我的实际解决方案是:
移除工具栏和工具栏按钮。在底部添加两个UIButtons。添加以下约束条件:
第一个按钮:
  • 左侧间距为Superview
第二个按钮:
  • 左侧间距为Superview
第一个按钮和第二个按钮:
  • 底部间距为Superview
  • 与ImageView相比,宽度成比例,乘数为0.5

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


由于某些原因,我无法将按钮固定在工具栏上,而且工具栏已经设置为固定到父视图并具有前导和尾随空间。开头的空格似乎与此无关。 - Tom Prats

0

使用Storyboard的Swift 5:

您可以向工具栏中添加Flexible Space Bar Button Item,这将允许您的图标等间距排列。将它们放置在您的Bar Button Items之间,它们将自动填充您的工具栏空间。

请参见下面的示例:

Storyboard Flexible Space Bar Button Item


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接