Как сделать UILabel автоматическим текстом в раскадровке (или построителе интерфейса), а не программно
Каждый раз, когда я нажимаю и перетаскиваю UILabel в раскадровку, а затем добавляю текст в текстовое поле, текст обрезается, поэтому мне нужно щелкнуть и перетащить UILabel, чтобы растянуть его достаточно большим, чтобы появляется текст.
Я не могу понять, как заставить UILabel автоматически становиться достаточно большим, чтобы соответствовать тексту.
Это позволит сэкономить время при разработке новых представлений.
Ответы
Ответ 1
В любом элементе в Interface Builder вы можете выбрать элемент и нажать...
Редактоp > Размер для содержимого (сочетание клавиш: CMD + =)
Это сделает "sizeToFit" для выбранного элемента. Ярлыки будут соответствовать их размеру текста, изображение будет изменять размер изображения и т.д.
Ответ 2
В Xcode 6.1 мне пришлось установить приоритет сопротивления сжатию содержимого на более высокое значение, вероятно, потому что у меня есть другие ограничения, которые противоречили друг другу, или вы отключили параметр sizeToFit.
До:
После:
![After]()
Ответ 3
Убедитесь, что настройки линий UILabel установлены на 0
![введите описание изображения здесь]()
Ответ 4
Начиная с iOS 6, появился новый API, доступный в Interface Builder, также называемый "Автоматический макет". Вы можете указать некоторые недочеты, и UIKit будет изменять размер/перемещать ваши представления на основе этих ограничений. Если вы не хотите использовать Autolayout, вы можете использовать свойство autoresizeMask
UIViews (которое также настраивается в Interface Builder).
Ознакомьтесь с Руководство по автоопределению!
Чтобы изменить размеры представлений в Interface Builder по мере их создания, см. ответ @Fogmeister