2016-12-17 16 views
0

私は、テキストの形でapiから応答が来ています。「計画された親のヘルスセンター」のテキストをスキャンして、その単語にハイパーリンクを挿入して、plansparenthood.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> 

なぜ私はそこに何かのリンクを取得していないのですか?私は間違ったことをしています。また、ユーザーが有効にした対話をYESに設定しました。

+0

ようなものを使用する必要がありますが... [NSAttributedTextでタップ可能な「リンク」を作成する –

+0

可能な複製UILabel?](http://stackoverflow.com/questions/1256887/create-tapable-links-in-the-nsattributedtext-of-a-uilabel) – Multinerd

答えて

3

iOSではこれを正直なものとして扱いません。おそらく、ユーザーにとってより簡単にタップできるUIButtonを使用するからです。あなたがが欲しいものを達成するために

、あなたはUILabelを使用することはできません - あなたはUITextViewを使用し、そのattributedTextプロパティを設定する必要があります。UITextViewは、選択が、編集不可能でなければならないこと

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; 

注意を。

アトリビュートされた文字列にリンクされていない他のテキストがある場合、この方法には欠点があります。たとえば、「ここでを選択してください。計画されている親のウェブサイトに行く」ここで「ここ」はリンクしたいテキストの唯一の部分です。この場合、「here」という単語の横にあるテキストの他の場所をタップすると、そのテキストがユーザーによって選択され、青色のハイライト表示が可能になります。

UITextViewを使用が望まれていない場合は、あなたが `あなたの友達ですNSMutableAttributedString`カスタムなTTTAttributedLabel

関連する問題