2013-11-25 2 views
3

Я полагаю, что моя ситуация должна быть общая проблема, но я действительно новичок в AutoLayout и мне кажется особенно сложным:Autolayout и пропорциональное позиционирование

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

enter image description here

А вот вид на дисплей 3,5 дюйма:

3.5 inches display

Что мне нужно, по существу, делает пространство между сегментированная и желтый и синий вид пропорциональны размеру экрана, я полагаю.

Мой раствор (который не работает):

1) Добавление ограничений для верха/низа вертикальных пространств управления с использованием сегментом less or equal to.

2) Добавление ограничений на другие виды для сохранения их позиций (например, синий вид имеет нижнее расстояние до основного вида, равное нулю, желтый вид имеет фиксированный верхний интервал).

На мой взгляд, ограничения точки 1) просто уменьшаются, когда основной вид масштабируется ... но этого не происходит ... и вид сегмента просто перемещается за другие виды, поддерживая расстояние, определенное как max значение определения «Меньше или равного».

Как решить эту общую проблему?

Придется ли мне создать spacer для этой ситуации? и в таком случае, как вы их настроили?

+1

Это может помочь вам [ссылка] (http://stackoverflow.com/questions/16521360/nsview-contraints-how-can-i-force-the-aspect-ratio-of- a-subview-to-stay-consta) –

+0

@iRaviiVooda спасибо. На данный момент это единственный путь. – MatterGoal

ответ

1

Существует чистый autolayout раствор:

  1. Добавить вертикальное пространство ограничение [yellowView] - (80 @ 500) - [segmentView]
  2. Добавить второе вертикальное пространство ограничение [segmentView] - (> = 5) - [blueView]
Смежные вопросы