Arrange 3 UIButtons(of equal width) side-by-side

血红的双手。 提交于 2019-12-19 02:53:09

问题


How to arrange 3 UIButtons side-by-side.I am using Auto-layout. My requirement is:

1.they should be equal width regardless of device

2.occupy vertically from starting to end of the view

i tried different ways, i failed to achieve that. Is it possible through interface builder


回答1:


There are 2 ways to do this.

Way 1:

With use of equal width constraint of button

Select all 3 buttons and add

top, left , right, height and equal width


Way 2: With use of Stack view

Step 1: Add 3 buttons.

Step 2: Select all that buttons, Once you selected, click on the Stack button in the Auto Layout toolbar at the bottom right of the storyboard canvas. see below in image.

Alternatively you can embed in From Editor -> Embed in -> StackView

Step 3: Add Constraints to StackView. like below.

Step 4: Select StackView, Once selected go to Attributes inspector. Change the Distribution to Fill Equally:

And its Done!




回答2:


Select 3 buttons and give this constraints

  - leading
  - trailing
  - bottom
  - Height
  - equal width 

You can check some references from equal width to 3 labels and from setting two buttons of equal width, side by side




回答3:


Set the constraints as following :

  1. Select all button and set the equal width constraint, this constraint will keep the width of all the buttons same.
  2. Select all buttons and set the bottom margin, this will keep all the button at bottom of the screen in all form factors.
  3. Set the left margin and right margin of first and last button respectively, with the superview.
  4. Select the button in the middle and set left margin and right margin constraint.



回答4:


It is possible through interface builder. This is what you do

  1. Create a UIViewController from your Storyboard by clicking the Object Library button.

  2. Now select and drag three buttons and add them to your View Controller. Be sure to add the buttons through here. Drag and drop in the View of your View Controller. Be sure to place the buttons at the bottom of your View Controller.

  3. After your three buttons are added , it should look something like this

  4. Now comes the interesting part. Now what you need to do is add constraints to your buttons so that they stay always at the bottom and of equal width. For simplicity let me call the three buttons as left , center and right button. To keep the button at the button , select the center button and press CONTROL on your keyboard and drag the button to the View. Select the constraint

Vertical spacing to Bottom Layout Guide

and keep a constant = 0. Now for the other two buttons you do this. Simply press CONTROL and drag to the central button. Select the constraint

Bottom

and keep constant for that constraint as 0.This ensures that all the buttons stay at the bottom.

Add the Height constraint as much as you want for all the three buttons.

At the end, these are the constraints you must have.

Center Button Constraint

Left Button Constraint

Right Button Constraint

  1. Now all you need to do is Control+drag the Width constraint of your center button to your ViewController.swift file and change the constant of the width to

    widthConstraint.constant = UIScreen.mainScreen().bounds.width/3

And that's it.



来源:https://stackoverflow.com/questions/36170982/arrange-3-uibuttonsof-equal-width-side-by-side

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!