Подтвердить что ты не робот

Используя "Автоматический макет", как сделать две метки на одной и той же "линии" динамическими по ширине (с учетом того, насколько они должны быть одинаковыми)?

Скажем, у меня два UILabels, один из них - URL, а один - таймер:

[http://website.com/link/to/specific/story] [9m 42s]

Но "таймер" UILabel сильно меняет ширину. Иногда это просто 12s, например, иногда это 125h 32m 8s. Там много изменчивости. Я хочу, чтобы таймер UILabel занимал столько же ширины, сколько ему нужно, а метка URL-адреса занимала все остальное. Это означает, что если таймер длиннее, более короткие URL-адреса и т.д.

Как это сделать в Auto Layout? Предпочтительно в Interface Builder?

4b9b3361

Ответ 1

Вы должны установить сопротивление сжатию, метка URL должна иметь более низкое значение;

Установите горизонтальное пространство между метками в постоянное (например, ноль или по умолчанию);

Задайте ширину для каждой метки и выберите соотношение "меньше" или "больше", эти значения задают пределы для сокращения/расширения вида.

Ответ 2

Здесь сопротивление сжатия становится важным. Поскольку метка URL должна сначала сокращаться (чтобы разместить пространство для метки таймера), сопротивление сжатию метки URL должно быть ниже сопротивления сжатия метки таймера (конечно, в горизонтальном направлении). Вы можете легко установить этот атрибут в IB.