哪个是UITextView/UILabel中显示链接,热词的最佳解决方案?

jac*_*iet 1 objective-c uilabel ios

我想在UILabel/ UITextView成为链接中的一些单词,以便人们可以点击它(如电话号码,网络链接,用户名等).

我尝试过使用UIWebView但它加载的文本太慢,而不是快速的简单UILabel/ UITxtView因此我决定不使用UIWebView.

我搜索了许多习惯UILabel来做到这一点,我发现GLTapLabel我认为这是最简单的方法.但是GLTapLabel只支持2种类型的链接,它会检测以"#"和"@"开头的单词(我想创建更多类型,如电话号码,网络链接..等).还有一个问题是,如果我点击一个GLTapLabel链接,UITableView它会触发它tableView:didSelectRowAtIndexPath:(我也在这里询问GLTapLabel Inside UITableView但尚未解决).

那么你们能给我一些建议吗?

jsz*_*ski 5

对于任意链接,最好的选择是使用TTTAttributedLabel,UILabel在iOS 5上显示属性字符串的子类.如果您使用的是iOS 6+,则UILabel直接支持属性字符串.

TTTAttributedLabel *someLabel;
[someLabel addLinkToURL:[NSURL URLWithString:someURLString] 
              withRange:[longerTextString rangeOfString:linkTextString]];


#pragma mark - TTTAttributedLabel Delegate

- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url {
    // handle the URL somehow
    [[UIApplication sharedApplication] openURL:url];
}
Run Code Online (Sandbox Code Playgroud)