我想使UILabel
/ UITextView
中的某些单词成为链接,以便人们可以单击它(例如电话号码,网络链接,用户名等)。
我尝试使用UIWebView
,但是它加载文本的速度太慢,不如简单的UILabel
/ UITxtView
快,因此我决定不使用UIWebView
。
我搜索了许多自定义的UILabel
来做到这一点,然后发现了GLTapLabel
,我认为这是最简单的方法。但是GLTapLabel
仅支持2种类型的链接,它检测以“#”和“@”开头的单词(我想创建更多类型,例如电话号码,网络链接等)。还有一个问题是,如果我在GLTapLabel
中单击UITableView
的链接,它将触发tableView:didSelectRowAtIndexPath:
(我在这里也问过GLTapLabel Inside UITableView,但尚未解决)。
你们能给我一些建议吗?
最佳答案
对于任意链接,最好的选择是使用 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];
}
关于ios - 哪个是显示链接,UITextView/UILabel中的热词的最佳解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16014916/