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

Как сделать UILabel автоматическим текстом в раскадровке (или построителе интерфейса), а не программно

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

Я не могу понять, как заставить UILabel автоматически становиться достаточно большим, чтобы соответствовать тексту.

Это позволит сэкономить время при разработке новых представлений.

4b9b3361

Ответ 1

В любом элементе в Interface Builder вы можете выбрать элемент и нажать...

Редактоp > Размер для содержимого (сочетание клавиш: CMD + =)

Это сделает "sizeToFit" для выбранного элемента. Ярлыки будут соответствовать их размеру текста, изображение будет изменять размер изображения и т.д.

Ответ 2

В Xcode 6.1 мне пришлось установить приоритет сопротивления сжатию содержимого на более высокое значение, вероятно, потому что у меня есть другие ограничения, которые противоречили друг другу, или вы отключили параметр sizeToFit.

Content Compression Resistance Priority До: Before После: After

Ответ 3

Убедитесь, что настройки линий UILabel установлены на 0

введите описание изображения здесь

Ответ 4

Начиная с iOS 6, появился новый API, доступный в Interface Builder, также называемый "Автоматический макет". Вы можете указать некоторые недочеты, и UIKit будет изменять размер/перемещать ваши представления на основе этих ограничений. Если вы не хотите использовать Autolayout, вы можете использовать свойство autoresizeMask UIViews (которое также настраивается в Interface Builder).

Ознакомьтесь с Руководство по автоопределению!

Чтобы изменить размеры представлений в Interface Builder по мере их создания, см. ответ @Fogmeister