2015-10-06 4 views
0

У меня есть ограничения на мои UIButtons в приложении iPad, так что верхний ряд кнопок остается на некотором расстоянии от UIImageView, и поэтому нижний ряд кнопок остается прижатым довольно близко к основанию. Однако, когда я вращаюсь, все идет не так. Вот образ того, когда в «Портрет» и «Когда в Пейзаже». Как это можно зафиксировать, учитывая меньшее количество вертикальной недвижимости в ландшафтном режиме?У AutoLayout есть кнопки друг на друга

enter image description here

enter image description here

ответ

1

Вам нужно будет либо масштабировать размер ваших подобозрения при вращении, или использовать прокрутки ракурс.

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

Вы можете связать доступное пространство для каждой строки кнопок с общим вертикальным размером основного вида , Например, пусть изображение будет составлять 50% от общего вертикального пространства и 25% для каждой строки кнопок (я бы настроил представление контейнера для каждой строки, а затем добавил ограничения для контейнеров). Убедитесь, что ваши изображения/кнопки правильно масштабируются и поддерживают соотношение сторон.

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

+0

В настоящее время нет вертикального ограничения между каждым рядом кнопок. Как это можно добавить или добавить? Я использую XIB, а не Storyboard для этого конкретного приложения, поэтому он несколько влияет на его большинство учебников, написанных сейчас для AutoLayout. Как вы считаете, самый простой способ этого? Я бы хотел, чтобы одна строка была повернута, но не знаю, как это сделать. – user717452

+0

Попробуйте поместить вертикальное ограничение между каждой строкой кнопок. Например, ctrl-drag от одной кнопки до той, что находится под ней, и выберите «вертикальное расстояние». Затем найдите ограничение в инспекторе размеров, измените тип с «Равно» на «Больше или равно» и установите константу в 0. Посмотрите, работает ли это для вас. Хотя, в зависимости от того, как настраиваются другие ограничения, это может не сработать. – Stonz2

+0

@ user717452 Я вижу, что оба ваших скриншота взяты из iPad. Если это единственное целевое устройство, другое дело - просто поместить все 6 кнопок в одну строку, будь то в портретной или альбомной ориентации, поскольку на большом экране iPad будет достаточно места для этого. – Stonz2

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