#ios #autolayout #interface-builder #swift3
#iOS #автозаполнение #конструктор интерфейса #swift3
Вопрос:
Я знаю, что в жизни нет простого способа, но я подумал, что спрошу.
У меня есть 10 UIButtons, расположенных в определенном порядке (например, дерево с бранчами).
Я бы хотел, чтобы эти кнопки становились меньше / больше при запуске приложения с разными размерами экрана (например, iPhone 5s или 6 или 6 и т. Д.).
Можно ли настроить автоматическую компоновку таким образом, чтобы кнопки оставались в том же порядке, но становились меньше / больше в IB?
Спасибо
Редактировать
Это похоже на то, чего я пытаюсь достичь…. Мой рисунок не симметричен.
Ответ №1:
Это звучит как большая проблема для UIStackView
.
Задайте кнопкам ограничения для соотношения сторон (относительно кнопки), а затем CTRL перетащите кнопки в супервизор и выберите Equal Widths
ИЛИ Equal Heights
.
Затем вы можете выбрать все кнопки и перейти в Редактор (вверху экрана) -> Встроить в -> Просмотр стека. Установите для представления стека Distribution
Fill Equally
значение и задайте ограничения представления стека относительно супервизора.
Комментарии:
1. Я не уверен, что правильно следую вашему примеру, но, похоже, он не работает… Эти кнопки имеют специфическое расположение, похожее на дерево…. они не расположены один под другим.
2. Ах, я понимаю. Вместо этого вы можете расположить каждую кнопку, центрируя их оси x и y по отношению к super view, а затем смещая (регулируя множитель) центр, пока они не окажутся там, где вы хотите, затем выполните те же ограничения для высоты / ширины и соотношения сторон.
3. Вам также придется добавить дополнительные ограничения, чтобы кнопки не перекрывались. То, что вы ищете, довольно сложно. Если вы не можете понять это, я могу попытаться опубликовать пример решения завтра
4. Пожалуйста, смотрите отредактированный вопрос с изображением. Это не совсем то, чего я пытаюсь достичь, поскольку это симметрично, а мой рисунок — нет!