2014-01-31 5 views
2

В View Controller У меня есть два UILabels.Очень простой AutoLayout

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

Это моя самая основная установка:

enter image description here

То, что я просто хочу, - чтобы начать погружение в тему - это:

  • имеют расстояние между двумя labels сохраняются при тестирование на 3,5 'и 4' экранах
  • имеют нижнее и верхнее поле как labels, которые пропорционально сохраняются при тестировании на экранах 3,5 'и 4'. EDIT: пожалуйста, подумайте, что желаемое положение это не точный центр.

Я попытался добавить ограничения с помощью опции «Pin», но безуспешно. Может быть, я должен положить их в другое представление, чтобы действовать как контейнер?

Это очень простой вопрос, но прямо сейчас эта функция AutoLayout меня действительно сбивает с толку. И, может быть, это может быть хорошей отправной точкой для понимания того, что сейчас выглядит для меня сумасшедшим ученым :)

+1

Я отвергнут за эти слова в прошлом, но думать о просмотре видео WWDC 2012 и WWDC 2013 на эту тему. Если вы являетесь новичком в автомаркете, они проведут вас по тому, как это работает концептуально, как его использовать (как в коде, так и в IB), распространенных проблемах и проблемах при съемке. Просмотр видео сэкономит вам огромное количество времени. –

ответ

2

Поместите оба UILabels в контейнерView и выровняйте контейнер вертикально в вертикальном направлении.

+0

Благодарю вас за предложение, но что, если это желаемое положение, это не точный центр? –

+0

Если вы не хотите вертикально центрировать, вам нужно установить фиксированное ограничение y для вашей верхней метки. Если вы хотите, чтобы ограничение y было другим для 3,5 "и 4", тогда создайте ограничение IBOUTLET для y в своем классе. Затем установите значение yourYConstraint.constant в нужное вам положение. – Khawar

2

Я поддержал бы @RoboticCat за сделанное им заявление. Но я попытался бы передать то, что я узнал из этих видео.

Для первого требования: Ctrl + кликнуть на любую из надписей & перетащить его на другую метку. Выберите опцию «Вертикальное расстояние» во всплывающем окне. это полностью заполнит ваше первое требование.

Для второго: Ctrl + click на верхней метке & перетащить его на вид viewController. выберите опцию «Верхнее пространство ...» из всплывающего окна.

повтор прежний уровень между внизу этикетка & вид. На этот раз выберите опцию «Bottom space ..» из всплывающего окна.

Теперь перейдите к Size Inspector каждой метки. Там вы можете найти только что созданные ограничения. Нажмите на них, чтобы выполнить редактирование.

Уменьшить приоритет верхнего & нижние ограничения до 500 от соответствующих ярлыков. Это решит вашу проблему.

Позвольте мне знать, если нужно подробнее .. :)

+0

человек, в первую очередь thx для вашего подробного объяснения, но, к сожалению, при переключении размера экрана на симуляторе метки все еще движутся неправильно. Похоже, что он применяет фиксированное количество пространства для верхнего поля, например. Должны ли ограничения быть представлены красным цветом? Прямо сейчас они красные ... –

+0

ну, точнее, они на самом деле не двигаются. Я использую xib, предназначенный для 4-дюймового экрана, и при визуализации его в 3.5-дюймовом экране выглядит как все, что находится в одном и том же положении без каких-либо изменений. –

+0

Итак ... Это работает? & ограничения не должны быть красного цвета. Вы должны настроить рамку на основе ограничений .. :) –

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