Авторозкладка iOS: дві кнопки однакової ширини, поруч


92

Зараз у мене виникають труднощі з AutoLayout. Я використовую конструктор інтерфейсів і намагаюся розташувати дві кнопки однакової ширини поруч, як показано на наступному зображенні.

об'єктивний макет

З наступного зображення попереднього перегляду мій titleImage був належним чином обмежений і відображається правильно, однак кнопки ні. Я експериментував, вирівнявши кнопку 1 з переднім краєм titleImage, а button2 - із заднім краєм titleImage, однак розподіл ширини між двома кнопками в цей момент стає нерівним, як показано нижче.

проблемний сценарій

Моє завдання - зрозуміти, яких обмежень не вистачає, і їх слід застосовувати до двох кнопок, щоб підтримувати рівні ширини незалежно від пристрою. Якщо це можливо, я хотів би досягти цього за допомогою конструктора інтерфейсів, на відміну від додаткового коду.


1
Кладка - це рекомендований спосіб зробити це за допомогою програм. Посилання: github.com/Masonry/Masonry
Itachi

1
ось посилання ... ви можете перевірити ... stackoverflow.com/questions/29620409/…
EI Captain v2.0

Відповіді:


246

Додайте наступні обмеження

  1. Призначте однакову ширину від кнопки1 до кнопки2.
  2. Призначте горизонтальний інтервал між обома кнопками.
  3. Призначте пробіл від button1 до його супервигляду.
  4. Призначте кінцевий простір від кнопки2 до його супервигляду.
  5. Призначте верхній простір обом кнопкам.
    Повідомте мене, якщо це працює для вас.

7
Відмінно - це працювало у мене. Точніше пункт 2 - додавання горизонтального інтервалу.
Scratcha

WoW !!! Що ти маєш на увазі? Це дійсно працює як шарм, і я був витрачений близько 3 годин! :)
Рандіка Вішман,

@Abubakr: Він працює лише для одного розміру екрана, оскільки обидві кнопки мають однакову ширину.
AG

1
Працює також для більш ніж 2 суміжних елементів інтерфейсу!
siege_Perilous

1
Ну спасибі, але я знайшов рішення і краще в коді. Дайте будь-якому з них вирівнювання по центру до батьківського і надайте постійну половину розміру вмісту, який ви можете обчислити, що в коді, або якщо вміст статичний, ви можете просто оновити кадри та оновити константу. разом із цим також додайте половину центрального інтервалу серед двох кнопок до цього вирівнювання по центру. І просто відкладіть цю провідну або кінцеву на іншу кнопку. Виправляє це для мене. І якщо ваш вміст є внутрішнім і його потрібно оновити, просто зателефонуйте до методу оновлення макета і знову обчисліть постійне значення.
Amber K

80

Виконайте кроки та знімки екрана, щоб отримати легке рішення


Крок 1)

  • Для кнопки 1: Встановіть обмеження: (1) Ведучий, (2) Верхній або нижній, якщо потрібно, (3) Висота


Крок-2)

  • Для кнопки 2: Встановіть обмеження: (1) відставання, (2) зверху або знизу відповідно до ваших потреб, (3) висота

Крок-3)

  • Натисніть Ctrl + Перетягніть з кнопки 1 на кнопку 2

  • Виберіть Горизонтальний інтервал


Крок-4)

  • Виберіть обидві кнопки (за допомогою команди) і додайте обмеження рівної ширини


ВИХІД

Сподіваюся, це допоможе вам :)


1
Висота не повинна бути фіксованою. Нехай вид визначає висоту кнопки відповідно до розміру екрана.
Куналь Кумар,

@KunalKumar у цьому випадку Висота фіксована. скажи мені, будь ласка, що ти хочеш?
Ввк

@Vvk ... ідеальний брате :)
Jaywant Khedkar

18

Макет стека в iOS9 зробить роботу дуже приємною. Додайте подання стека до свого подання та налаштуйте наступним чином:

введіть тут опис зображення



0

Моє рішення -

  1. Помістіть невеликий вигляд посередині двох кнопок і зробіть його центром (Горизонтальний центр у контейнері та вертикальний центр у супернику як 0).
  2. Додайте висоту та ширину до малого виду.
  3. Додайте кнопки обмеженнями та надайте обмеження горизонтального простору для малого перегляду.
  4. Надайте кольору тла малого вигляду таким же, як кнопки або колір вигляду.

Примітка: Див. Знімок екрана.

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.