ОК, поэтому после нескольких поисков и попыток я наконец получил то, что мне было нужно.
Сначала я попытался поместить свою строку в UITextView, которую можно выбрать с помощью обнаружения ссылок. Было бы здорово, если бы я прямо написал свои URL-адреса в тексте.
Но опять же, строки, которые я получаю от JSON выглядеть следующим образом:
<a href="http://www.website.com/" target="_blank">Link</a>
Я смотрел на Fancy UILabels и NSDataDetector, но казалось, что метки работали, но все еще показывает HTTP: //, который не выглядел хорошо меня.
Итак, я решил, что лучший способ - поместить эту строку в UIWebView и называть ее (я заменил TextLabel на вопрос TextView).
[self.TextView loadHTMLString:self.item[@"textBlock"] baseURL:nil];
У меня, наконец, был последний номер, поскольку ссылки открывались в UIWebView вместо Safari.
Поэтому я добавил self.TextView.delegate = self;
в viewDidLoad
.
И
-(BOOL) webView:(UIWebView *)TextView shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if (inType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:[inRequest URL]];
return NO;
}
return YES;
}
.h файл также должен позвонить UIWebViewDelegate
.
И если вы думаете UIWebView шрифт по умолчанию некрасиво в этом случае, как я сделал, вы можете сделать:
NSString *nicerTextBlock = self.item[@"textBlock"];
[self.textView loadHTMLString:[NSString stringWithFormat:@"<style type='text/css'>body { font-family: Helvetica; font-size: 12 } ></style>%@", nicerTextBlock] baseURL:nil];
Надеется, что это может сэкономить время для других людей.
Посмотрите в регулярном выражении? –
Извините, если я, похоже, не показываю никаких исследований, но я не могу найти то, что мне нужно, поэтому я опубликовал. – David
Возможный дубликат [Удалить HTML-теги из NSString на iPhone] (http://stackoverflow.com/questions/277055/remove-html-tags-from-an-nsstring-on-the-iphone) –