Как избежать выпадения кнопок из нижней части экрана и предотвратить исчезновение текста с помощью автозапуска - xcode/swift?

Я пишу простое приложение для iOS в быстром режиме с xcode и имею представление навигации, в котором у меня есть текстовое представление (содержащее одно или два предложения для вопроса) с двумя кнопками ниже для перехода вперед и назад.

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

Также в настоящее время при повороте вида кнопки выпадают из нижней части экрана. Каков наилучший способ настроить это для правильного отображения на устройствах/ориентациях с использованием представлений стека и ограничений? введите здесь описание изображения


person laurie    schedule 17.05.2017    source источник


Ответы (2)


Как указано в одном из ответов, вам необходимо установить тип распределения "Fill Equally".

После настройки «представления стека кнопок» вы можете использовать другое представление стека для хранения «представления стека кнопок» и «текстового представления»,

Or

Вы можете использовать простые ограничения для настройки «текстового представления» в «представлении стека кнопок».

В этой раскадровке я повторил оба случая.

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

Вы всегда можете обратиться по ссылке https://developer.apple.com/reference/uikit/uistackview. Или один из моих постов о других типах распространения здесь https://stackoverflow.com/a/34059843/1790683

ОБНОВЛЕНИЕ: Как я вижу в вашей раскадровке, во внешнем представлении стека отсутствуют ограничения. Чтобы добавить правильные ограничения, выберите представление внешнего стека и кнопку «добавить новое ограничение» на нижней панели. См. снимок экрана

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

person BangOperator    schedule 18.05.2017
comment
Мне больше всего нравится представление стека, это имеет для меня наибольший смысл. Проблема в том, что когда я это делаю, текстовое представление не отображается в моем представлении, когда я запускаю приложение. Нужно ли повторно подключать розетку? Я выбираю две кнопки, затем иду в редактор › встраиваю в › вид стека. Затем выберите это представление стека и текстовое представление и выполните те же шаги. Это раскадровка, которая у меня сейчас есть: dropbox.com/sh/885e9rcklg5m7sv/ AAB1zhQ-tGeOCVhGHgVfoHExa?dl=0 - person laurie; 18.05.2017
comment
Спасибо. Я добавил эти ограничения. Представление больше похоже на правильные пропорции, однако текст не загружается в текстовое представление или по какой-то причине не отображается. Кнопки находятся внизу, и есть пустое место, где должен загружаться текст. Однако, если я перетащу текстовое представление из стека. Он отображается более или менее в нужном месте. Думаю, я могу просто использовать для него ограничения, но мне любопытно, почему он не загружается при встраивании в стек. Может быть, код нужно изменить? Я думал, что розетка останется прежней... - person laurie; 18.05.2017
comment
Самое странное, что я могу перетащить текстовое представление в то же текстовое представление, что и кнопки, тогда отображается текст (рядом с кнопками, как и следовало ожидать. Но если я помещу его в вертикальный стек (содержащий как текстовое представление, так и горизонтальный стек (который, в свою очередь, содержит кнопки) не отображает текст. :/ - person laurie; 18.05.2017
comment
Вот пример проекта, который показывает проблему: dropbox.com/sh/yg3theu523m88oz/ AADSLKXQkrXAwXne54Z7aP3Ea?dl=0, если вы запустите его, вы увидите, что отображаются кнопки, но не текст. Если я перемещаю текстовое представление из стека... оно показывает...? - person laurie; 18.05.2017
comment
Не уверен, что последняя ссылка даст вам необходимый доступ, если нет, попробуйте эту: dropbox.com/sh/3vxs1l8us9ltnkw/AAAuZRJDkqChKhyBKtw5V7Uta?dl=0 - person laurie; 18.05.2017
comment
@laurie, представление больше похоже на правильные пропорции, однако текст не загружается в текстовое представление или по какой-то причине не отображается, я думаю, что мой ответ решил вашу проблему макета. Если вы столкнулись с какой-либо другой проблемой (может быть, даже связанной), вам следует задать другой вопрос. Я был бы рад помочь вам там. Спасибо. - person BangOperator; 19.05.2017

Вы на правильном пути, используя представление стека. Что вам нужно сделать, так это установить для параметра «Распределение представления стека» значение «Заполнить поровну». Это делается очень легко в раскадровке. Чтобы добавить интервал, измените интервал на конкретный интервал, который вы ищете (я установил его на 15). Я прикрепил скриншот настроек здесь. См. "Распространение"

person Nevin Jethmalani    schedule 17.05.2017