Content hugging и compression resistance
Вопрос
Два лейбла в строке, места на оба не хватает. Как сделать, чтобы обрезался левый, а правый (цена) показывался целиком?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Варианты ответа
- Повысить content hugging левого лейбла относительно правого
- Уменьшить приоритет констрейнта ширины правого лейбла до 250
- Задать обоим лейблам
numberOfLines = 0и перенос по словам - Повысить compression resistance правого лейблаправильный ответ
Разбор
Compression resistance отвечает за нежелание сжиматься меньше intrinsic content size: у кого она выше, тот сохранит размер, а сожмётся (и обрежется) другой. Content hugging работает в обратную сторону, когда места лишнее: кто сильнее «обнимает» контент, тот не растягивается. Перенос строк не решит задачу «цена в одну строку».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Почему кнопка не получает нажатия
Следующий вопрос
Задача на Swift: разница снимков для diffable data source
Ещё по теме «UIKit»
- Неверная картинка в переиспользуемой ячейке
- Diffable data source и повторяющиеся идентификаторы
- Что делать в prepareForReuse
- reconfigureItems и reloadItems
- Ячейки с автоматической высотой
- Разница между frame и bounds
- Где брать финальный размер view
- setNeedsLayout и layoutIfNeeded