UILabel присваивалText с несколькими режимами разрыва строки

У меня есть требование показать UILabel с текстом, который имеет два разных стиля (разные цвета, части текста выделены жирным шрифтом). Это достаточно легко решить, используя атрибут attributeText-property.

Моя проблема в том, что текст может быть или не быть длиннее, чем я могу поместиться в моем ярлыке. При использовании простого текста все работает так, как я этого хочу. Текст заключен в слово, чтобы соответствовать количеству строк в метке, а хвост усечен, если / когда текст длиннее, чем может быть показан на этикетке.

Когда я переключаюсь на использование атрибута subtext, я могу выбрать только усечение хвоста и перенос слов. Если я хочу, чтобы хвост был усечен, метка отображает только одну строку с усеченным хвостом (даже если она может соответствовать 10 линиям). Если я выбираю перенос слов, то хвост не усекается, но строки, которые не могут помещаться на ярлык, просто не отображаются.

Моя строка содержимого не содержит разрывов строк, это просто одна длинная строка.

Я упустил усечение, когда я установил строку, но все, что я должен был добавить linebreakmode в paragraphstyle

NSMutableParagraphStyle *paragrahStyle = [[NSMutableParagraphStyle alloc] init]; [paragrahStyle setLineSpacing:1.5]; [paragrahStyle setLineBreakMode:NSLineBreakByTruncatingTail]; NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:@"Long string that truncates"]; [attributedText addAttribute:NSParagraphStyleAttributeName value:paragrahStyle range:NSMakeRange(0, [attributedText length])]; self.label.attributedText = attributedText; 

Они только способ, которым я смог заставить это работать, – не устанавливать стиль абзаца.

попробуй это:

[_text drawWithRect: _textRect: NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine : атрибуты context: nil];

Вы можете настроить NSParagraphStyle с помощью любого lineBreakMode и применить его к строке, используя NSParagraphStyleAttributeName . Я не знаю, поддерживаются ли все значения NSLineBreakMode , но у меня нет причин полагать, что это не так.

  • UILabel sizeToFit работает только с отключенным автозагрузкой
  • Как установить расстояние между буквами UILabel от Storyboard / Xib?
  • Сделать эффект встряски для ярлыка в ios?
  • Центр нижнего колонтитула UILabel в сгруппированном UITableView - Swift
  • Как я могу погладить и заполнить NSAttributedString w / UILabel
  • Отображение нескольких строк в ячейке просмотра таблицы - IOS
  • Центрирование метки по вертикали в UINavigationBar TitleView
  • Текст UILabel не обновляется
  • Autolayout: UILabel не изменяет размер с длинным текстом
  • Текст метки «Поиск» с помощью UITextField
  • Как настроить размер шрифта, чтобы он соответствовал высоте и ширине UILabel
  • Interesting Posts

    iOS – Изменить шрифт текста для каждого сегмента в UISegmentController

    Как определить, когда мое приложение будет завершено в фоновом режиме?

    Разработка гибридных приложений – лучшие практики тестирования

    Почему я не могу зарегистрировать приложение iOS для обработки типа файла изображения?

    NSDateformatter не работает в IOS 7.0.4

    NSUserDefaults – Как сохранить массив настраиваемых объектов (Цели)

    Могу ли я запретить загрузке моего приложения со слишком старой версией ОС?

    значок приложения iOS с прозрачным фоном, отображающий черный фон на устройстве

    NSCoder – кодирование массива с несколькими уровнями вложенных массивов

    vDSP_ztoc производит нечетные результаты

    Как понять журнал аварий на XCode 4

    Индексированные NSFetchedResultsController

    Как показать кнопку в центре панели инструментов?

    Обнаружение касания от TOP / BOTTOM

    NSURLErrorDomain: невозможно декодировать необработанные данные

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