Увеличьте размер кадра UIView на левом краю - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть UIView, который может динамически увеличиваться по ширине.Представление также имеет подпредставления, расположенные внутри его границ.

Поведение по умолчанию, по-видимому, заключается в том, что, когда рамка представления растёт вдоль оси x, увеличиваясь frame.size.width, она всегда увеличивается по правому краю, сохраняя подпредставления фиксированнымиесли бы было исправлено левое поле.Однако, когда я хочу расширить вид на левом краю, это не работает из-за этого поведения.В этом случае я хочу, чтобы он вел себя зеркально, как если бы было исправлено правое поле.Конечно, я мог бы «вручную» переместить все подпредставления, чтобы это выглядело так, но это кажется действительно неуклюжим, поскольку их может быть много.

Так что я думаю, что вопрос в том, есть ли способсдвинуть границы представления относительно его подпредставлений?Может быть autoresizingMask способ сделать это?

Спасибо.

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

В конструкторе интерфейсов вы можете графически указать в CMD-3 (маленький значок линейки) инспектор размера, что должен делать каждый элемент в вашем представлении при изменении размера родительского представления: вы можете указать, какие границы (вверху, слева, справа, снизу), данный элемент должен «придерживаться» при изменении размера родительского представления. Вы также можете указать, должен ли данный элемент сам изменять размер (либо по ширине, либо по высоте), либо оставаться в том же размере. Под капотом это устанавливает маску авторазмера для редактируемого элемента UIView, но особенно для создания привязки элемента к определенной границе, Интерфейсный Разработчик - путь.

IB Size Inspector также имеет аккуратную небольшую анимацию, которая показывает вам эффект на гипотетический элемент (маленький красный квадрат) во время изменения размера с учетом ваших настроек слева.

1 голос
/ 08 февраля 2011

Может быть, вам стоит взглянуть на свойство AutoresizingMask подкласса UIView: -)

Например, если у вас есть UILabel с именем labelVideoTitle, вы можете установить маску следующим образом:

[ labelVideoTitle setAutoresizingMask:UIViewAutoresizingFlexibleWidth ];

Кстати, вы можете добавить сразу 2 маски, например:

[ labelVideoTitle setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight ];

Удачи!

Редактировать: чтобы увеличить размер рамки родительского вида на левом краю, вы можете также изменить его положение X влево, чтобы создать желаемое впечатление ^^ Например, если вы добавите 10 pt к ширине, попробуйте изменить начало координат X -10 баллов: -)

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