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

标签 ios objective-c uilabel

我想使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/

相关文章:

iphone - 我如何从一个字符串中取出多个 url?

objective-c - 如何读取框架内的资源文件?

iphone - 导航栏中标题的默认字体大小、字体名称和阴影是多少?

iphone - 如何从带有标签和颜色对象的方法中选择随机颜色?

ios - 在 Swift 中以编程方式将 UILabels 和 UIButtons 添加到 UIScrollView

ios - imageNamed 在 iOS 7 上返回 nil,但在 iOS 8 上不返回

ios - 始终以 GMT 格式存储日期然后在显示时进行调整是最佳做法吗?

ios - 以编程方式从 UIViewController 重定向到另一个 UIViewController

ios - 重用单元格 UICollectionView - 一些单元格没有被选中

ios - NSURLProtocol 不响应 UIWebviews