Выбор ответа Middle UIKit обновлено

Content hugging и compression resistance

Вопрос

Два лейбла в строке, места на оба не хватает. Как сделать, чтобы обрезался левый, а правый (цена) показывался целиком?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Повысить compression resistance правого лейбла. Compression resistance отвечает за нежелание сжиматься меньше intrinsic content size: у кого она выше, тот сохранит размер, а сожмётся (и обрежется) другой.

Варианты ответа

  1. Повысить content hugging левого лейбла относительно правого
  2. Уменьшить приоритет констрейнта ширины правого лейбла до 250
  3. Задать обоим лейблам numberOfLines = 0 и перенос по словам
  4. Повысить compression resistance правого лейблаправильный ответ

Разбор

Compression resistance отвечает за нежелание сжиматься меньше intrinsic content size: у кого она выше, тот сохранит размер, а сожмётся (и обрежется) другой. Content hugging работает в обратную сторону, когда места лишнее: кто сильнее «обнимает» контент, тот не растягивается. Перенос строк не решит задачу «цена в одну строку».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.