2016-12-17 10 views
0

У меня есть ответ, исходящий из api в виде текста. Я хочу отсканировать этот текст для слова «Планируемый центр здоровья родителя» и вставить гиперссылку на это слово, которая перенаправляется на запланированныйparenthood.org/портал медицинского центра.Вставить гиперссылку в UILabel

мой подход:

NSString *text = response.content; 
text = [text stringByReplacingOccurrencesOfString:@"Planned Parenthood health center" 
             withString:@"<a href=\"http://www.plannedparenthood.org/health-center\">Planned Parenthood health center</a>"]; 

хотя ссылка на текст становится заменен. Он заменяется на

<a href=\"http://www.plannedparenthood.org/health-center\">Planned Parenthood health center </a> 

Что не так, почему я не получаю никаких ссылок? я делаю что-то неправильно, я также установил взаимодействие с пользователем с помощью ДА

+0

'' NSMutableAttributedString вашего друг ... –

+0

Возможного дубликат [Создать TAP-возможность «ссылку» в NSAttributedText UILabel?] (http://stackoverflow.com/questions/1256887/create-tap-able-links-in-the-nsattributedtext-of-a-uilabel) – Multinerd

ответ

3

iOS не справляется с этим, если честно, вероятно, потому, что он намеревается использовать UIButtons, которые гораздо легче сбрасываются для пользователей.

Чтобы сделать то, что вы хотите, хотя, вы не можете использовать UILabel - вам нужно использовать UITextView и установить его attributedText свойство:

NSMutableAttributedString * attributedString = [[NSMutableAttributedString alloc] initWithString:@"Planned Parenthood health center"]; 
[attributedString addAttribute: NSLinkAttributeName value: @"http://www.plannedparenthood.com" range: NSMakeRange(0, str.length)]; 
textView.attributedText = attributedString; 

Обратите внимание, что UITextView должен быть выбор, но не редактируется.

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

При использовании UITextView не требуется, то вам нужно будет использовать что-то на заказ, такие как TTTAttributedLabel