Вертикально расположенные / разнесенные элементы экрана с использованием Autolayout и Interface Builder



У меня есть относительно простой портрет-только пользовательский интерфейс, выложенный в раскадровке, с элементами, которые я хочу вертикально разложить, чтобы заполнить как 3,5-дюймовый, так и 4-дюймовый экраны.



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

Это не кажется чем-то необычным, однако я просто не могу заставить Interface Builder (в Xcode 5) добавить правильные ограничения - я только кажусь чтобы иметь возможность получить его, добавьте фиксированные вертикальные ограничения пространства, которые не настраиваются для разных размеров экрана.



Кто-нибудь знает, как это сделать, не прибегая к программному построению пользовательского интерфейса? Я вложил много усилий в то, чтобы сделать пользовательский интерфейс на основе раскадровки правильным.



Решение должно работать как на iOS 6, так и на iOS 7. Спасибо!

456   2  

2 ответов:

Как это сделать, зависит от того, какую именно настройку вы хотите выполнить при изменении размера экрана. Один из способов сделать это, чтобы дать верхнему и нижнему большинству видов вертикальные ограничения расстояния до верхней и нижней части супервизора, соответственно. Добавьте вид, я обычно использую UILabel без текста, между всеми видами, которые вы сложили вертикально, и дайте им равные высоты друг к другу. Дайте одному из этих видов" spacer " фиксированную высоту, но отредактируйте его так, чтобы его приоритет был меньше 1000 (что означает это не обязательно, чтобы он был удовлетворен). Затем добавьте ограничения расстояния между каждым ближайшим соседом выше и ниже каждого "реального" вида и "разделителей", так что у вас есть все виды сверху вниз, связанные вместе вертикальными ограничениями расстояния. При изменении размера экрана единственным, что может измениться, будет высота "проставок", так как приоритет меньше 1000, а все остальные ограничения обязательны. Мои ограничения выглядят следующим образом:

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

Метки имеют стандартный (8 точек) интервал между "реальными" видами над ними и под ними. Верхний и Нижний виды должны иметь любое расстояние, которое вы хотите, чтобы края экрана.

Компания Apple опубликовала документ, в котором описывается официально одобренный подход к решению этой проблемы:

Https://developer.apple.com/library/ios/documentation/userexperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html#//apple_ref/doc/uid/TP40010853-CH5-SW8

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

Comments

    Ничего не найдено.