Изменение размера UILabel для текста

У меня есть UILabel в моем подклассе Cell, который, предположительно, должен содержать заголовок. Размер заголовка может быть разной длины, и поэтому мне нужно изменить размер UILabel, чтобы он соответствовал тексту, и чтобы текст не был длинным, мне также нужно установить maxHeight. Ширина должна быть одинаковой. Как создать такой код в swift в подклассе tableViewCell?

Пока у меня это в awakeFromNib

theTitleLabel?.font = UIFont(name: "HelveticaNeue", size: 13) theTitleLabel?.textColor = UIColor(rgba: "#4F4E4F") theTitleLabel?.numberOfLines = 0 theTitleLabel?.lineBreakMode = NSLineBreakMode.ByTruncatingTail 

Самый простой способ сделать это – использовать ограничения автоопределения. Вы используете awakeFromNib , поэтому я предполагаю, что у вас есть эта ячейка где-то в вашем построителе интерфейса (файл xib или раскадровки).

Если вы можете избежать этого, никогда не настраивайте свои представления в своем коде. Это намного проще сделать в Interface Builder.

  1. Найдите свой ярлык и настройте его атрибуты (шрифт, цвет, режим разрыва строки и т. Д.) В Interface Builder.

  2. Добавьте ограничение ширины (или ограничения на левое и правое поля, в зависимости от того, что вы хотите).

  3. Добавьте ограничение по высоте, измените его отношение от = (equals) до < (less than) .

Вы закончили, код не нужен.

  CGSize maximumLabelSize = CGSizeMake(MAX_WIDTH, MAX_HEIGHT); CGSize expectedSize = [lbl sizeThatFits:maximumLabelSize]; CGSize s = CGSizeMake(STATIC_WIDTH, expectedSize.height); yourLabel.frame = CGRectMake(yourLabel.frame.origin.x, nameLbl.frame.origin.y, s.width, s.height); 

Swift 2 , из ответа Зиглцворта:

 let maximumLabelSize = CGSizeMake(maxWidth, maxHeight); let expectedSize = theLabel.sizeThatFits(maximumLabelSize) theLabel.frame = CGRectMake(theLabel.frame.origin.x, theLabel.frame.origin.y, expectedSize.width, expectedSize.height) 
 let lblMassage = UILable() lblMassage.text ="Resizing the height of UILabel to fit text.................." lblMassage.numberOfLines = 0 lblMassage.lineBreakMode = NSLineBreakMode.byTruncatingTail lblMassage.preferredMaxLayoutWidth = 190 lblMassage.sizeToFit() 
  • Невозможно переходить с UILabel на ViewController
  • Как получить высоту UILabel с линейным пространством?
  • Текст UILabel не обновляется
  • Есть ли способ избавиться от многоточия в усеченной этикетке?
  • У меня возникают проблемы с динамическим обновлением UILabel в одном контроллере от другого. Он должен соответствовать флажку, проверяемому в объективе-c
  • Возможно ли закругленные углы на атрибутированном тексте?
  • UILabel вид исчезает, когда высота больше 8192
  • Swift CGAffineTransformScale до масштаба, а не по шкале
  • Как создать UILabel с ключевым словом clickable
  • Настройка настраиваемого шрифта для внешнего вида UILabel вызывает ошибку UIDatePicker
  • Как изменить размер текста (шрифта) в соответствии с UISegment UISegmentedControl?
  • Interesting Posts

    Внедрить протокол objectivec в быстром

    поверните на 180 градусов для UIImageView и поверните назад по тому же маршруту

    Объект Unarchive UIImage возвращает изображение CGSizeZero с использованием NSKeyedUnarchiver на iOS 8

    Переключение между CarPlay и обычным окном в iOS-симуляторе

    Автозаполнение парсекита

    Невозможно найти клавиатуру, которая поддерживает тип 4 для клавиатуры. Предупреждение, возможно ли молчание?

    AVPlayerLayer исчезает после нескольких вызовов currentModalView / rejectModalView

    Как сохранить данные из запроса в массиве строк, Firebase iOS?

    Приложение, преобразованное в ARC, теперь получает предупреждения о моих свойствах

    Фильтр CIImage растягивает мое изображение по вертикали

    Как получить правильные размеры шрифта из Photoshop в iOS

    boundingRectWithSize не поддерживает перенос слов

    Почему UIScrollView's contentSize настраивается при масштабировании?

    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 не удалось с кодом выхода 1

    Что делает aDecoder в методе initWithCoder в какао-touch?

    Давайте будем гением компьютера.