Как я могу подчеркнуть часть текста, такую ​​как iPhone SMS? - PullRequest
3 голосов
/ 08 июня 2009

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

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 09 июня 2009

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

5 голосов
/ 08 июня 2009

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

...