0

Я не понимаю, как объединить вместе левое и правое горизонтальные ограничения. Я до сих пор не понимаю точный механизм за пределами интерфейса строителя, его ограничения и эффективные результаты на симуляторе: enter image description hereОграничения по горизонтали влево и вправо

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

ответ

3

Ведущая или отставая ограничение (которое является то, что вы создали) устанавливает фиксированное расстояние между левым краем зрения и то, что вы связали его с.

По умолчанию моделируется размер для контроллеров просмотра в новых универсальных раскадровках и xib-файлах в Xcode составляет 600x600. Но ни один из существующих устройств не имеет такого размера.

Таким образом, если метка имеет, давайте просто скажем, 100 ширину, то для того, чтобы «центр» его с помощью влево & правильные ограничения, используя интерфейс ширину строитель смоделированы 600, мы бы создать левое ограничение 250 и правое ограничение 250 (250 + 100 + 250 = 600).

Но опять же, ни одно из фактических устройств не имеет этой ширины. Поэтому, если мы запустим ваше приложение на iPhone 6, оно будет иметь ширину, равную 375 "точкам". Если мы запустим его на iPhone 4s или iPhone 5/5s, он будет иметь ширину, равную 320 точкам.

Таким образом, наша метка шириной в 100 точек ограничена постоянным расстоянием 250 пунктов от левого края родительского вида. 250 + 100 = 350. Но iPhone 5 имеет ширину 320 точек, поэтому часть метки появляется с краю экрана, а правильное ограничение прерывается, потому что левое и правое ограничения не могут быть одновременно удовлетворены (вы, вероятно, куча предупреждающих сообщений об этом в вашем журнале при запуске приложения).

Если мы хотим, чтобы метка была центрирована, мы должны создать горизонтальное ограничение по центру (как показывает mikle94's answer).

+0

ваш ответ действительно ясен! но у меня нет никаких предупреждений ... – volperossa

+1

@volperossa Предупреждения появятся в журнале (где появятся заявления 'NSLog'), когда вы фактически запускаете приложение. На вашем скриншоте в вопросе это не похоже на то, что вы смотрите, это результат фактического запуска приложения. – nhgrif

+0

Да, это просто на экране предварительного просмотра помощника редактора. Не являются ли предупреждения в NSLog одинаковыми из IB (предупреждения, когда я нажимаю на желтый треугольник)? – volperossa

2

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

screenshot

+0

Благодарим вас за ответ! но я не понимаю, почему это ... с левым и правым ограничением я не получаю такой же результат? – volperossa