Как я могу подчеркнуть часть текста, например, iPhone SMS?

StackOverflow https://stackoverflow.com/questions/964027

  •  12-09-2019
  •  | 
  •  

Вопрос

Я использую UILabel для отображения моего текста в многострочном режиме и режиме UILineBreakModeWordWrap, а максимальная ширина равна 200.
Например, вот текст:

I really really want to underline first word and second word, could you help me?

И я хочу подчеркнуть "первое слово" и "второе слово".

Если текст отображается в однострочном режиме с помощью метода sizeWithFont из NSString, я могу легко вычислить позицию "первого слова", а затем переопределить - (void)drawTextInRect:(CGRect)rect, чтобы нарисовать линию.

Но в многострочном режиме я не знаю, как получить позицию.У тебя есть какие-нибудь идеи?

Это было полезно?

Решение

Существует довольно много дискуссий об отсутствующей NSAttributedString на iPhone, и люди начинают создавать свои собственные системы разметки текста, чтобы обойти это.В этой области реализуется несколько проектов.Возможно, вы захотите взглянуть на Проект Three20 и его TTStyledTextLabel.

Другие советы

Используйте UIWebView для отображения вашего текста.Это то, что Apple рекомендует для форматированного текста.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top