2015-12-30 2 views
0

I want the same space between my six buttons shows in the pictureКнопки с таким же расстоянием между

Я хочу, чтобы то же самое пространство между моими шестью кнопками показывает на картинке, у меня возникли проблемы с autolyout, вы знаете, как я могу поставить их с тем же интервалом, равным? все они имеют одинаковую размерность, widht и высота: 36

Они находятся в UIView и UIView внутри UITableViewController, как вы можете видеть на картинке

+0

, если ваше приложение поддерживает только прошивку 9 и выше, то вы stackView. это лучший вариант для вас в этой ситуации. Если вы хотите, как это сделать, дайте мне знать, опубликуйте ответ –

+0

@PravinTate для ios 8.1 и выше. –

+0

, так сколько интервалов вы хотите установить в этих кнопках? –

ответ

1

Поскольку все значки имеют одинаковый размер, вы можете управлять этим посредством кода, который является общим для всех разрешений устройства. Небольшой расчет поможет.

В этом случае

   let x = screenwidth (or UIView) 
        y = width of the icon (36 here) 
        a = space between superview and first icon (Leading Space) 
        b = space between last icon and super view (Trailing space) 

сначала добавить ширина и высота ограничения для всех значков, так что ширина постоянна.

Теперь добавьте ограничения на горизонтальное расстояние от 2-й кнопки до 1-й кнопки (d), кнопку 3-й кнопки на 2-й кнопке (d), 4-ю кнопку на 3-й кнопке (d) и так далее до 6-й кнопки до 5-й кнопки (d) и эти параметры constraints.constants используются ниже, путем создания переменных nslayoutconstraint.

Поскольку расстояние должно быть одинаковым, все эти ограничения расстояния будут равны по значению, например, d.

d + d + d + d + d = (x - 6y - a - b) 
5d = (x - 6y - a - b) 
d = (x - 6y - a - b)/5 
1

Используйте вид стека, если вы можете ,

В противном случае место просмотра между каждой кнопкой и установить их равную ширину друг другу.

-1
  1. Если вы используете IOS 9+ использовать раскадровку это лучшее решение для такого типа ситуации
  2. Если вы используете ниже прошивкой 9 используйте следующее решение, проверьте ссылку enter link description here

Поскольку не является другим решением для установки равного пространства между объектами, поэтому для этого вам необходимо создать spaceView. Просто следуйте этой ссылке, и вы получите то, что хотите. Я лично пробовал эту штуку, и она работает для меня. Так что попробуйте.

Если у вас есть сомнения, сообщите мне, я объясню это.

Я надеюсь, что это вам поможет!

+0

у вас что-то не хватает в ответе? –

0

Существует два способа: 1. Вставьте виды между кнопками, которые должны быть пропорциональны элементу просмотра, и сохраняйте ширину отображения одинаковой. 2. Добавьте ограничения для каждого центра кнопок для центра наблюдения и поместите множители, чтобы получить одинаковое расстояние от центра.

0

использование UICollectionView и поддерживать ячейки интервала между правильно ... установить горизонтальную полосу прокрутки only.It выглядит отлично, но потребляет дополнительную память ..

Смежные вопросы