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

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

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

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

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

4 Solutions collect form web for “UILabel присваивалText с несколькими режимами разрыва строки”

Я упустил усечение, когда я установил строку, но все, что я должен был добавить 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
  • Еврейский текст показывает прямоугольник в iOS на UIlabel?
  • Как узнать, подходит ли NSString в UILabel или нет и индекс последней строки, которая подходит?
  • iOS: CGRect конкретного текста в строке UILabel
  • Моделирование поведения UILabel на OSX
  • UILabel Text Strikethrough с цветом
  • Как увеличить расстояние между символами в UILabel
  • Размер UILabel неправильно вычисляется при изменении шрифта в UILabel
  • Верхнее выравнивание UILabel с многострочным
  • Как изменить альфа UILabel, нажав?
  • Уровень UILabel cornerRadius отрицательно влияет на производительность
  • Interesting Posts

    Любая идея, как избежать этого утверждения в DDTokenCache и что это значит?

    Ошибка «CoreData не может выполнить ошибку» с помощью MagicalRecord

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

    Обнаружение изменений в часовом поясе устройства в

    Кто-нибудь успешно добавил UISearchBar в Core Data Project в Swift

    Как поднять uilabel в ios

    OAuth2 «социальный вход» (разрешить проверку подлинности OAuth2 через Facebook / Twitter): есть ли примеры / литература?

    Прямая кнопка UINavigationBar не отображается

    Библиотека Objective-C для восхода и захода солнца?

    Как получить идентификатор кампании или реферер внутри приложения iOS

    Аламофир сохраняет файлы cookie автоматически?

    Захват данных из Alamofire

    Чтение JSON из URL и добавление MKAnnotations

    Ограничить запросы API только для моего мобильного приложения

    Добавить кнопку раскрытия в MKPointAnnotation

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.