Как я могу подчеркнуть часть текста, например, iPhone SMS?
Вопрос
Я использую 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 рекомендует для форматированного текста.