1

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

我尝试过使用UIWebView,但它加载文本太慢,不像简单UILabel/那么快,UITxtView所以我决定不使用UIWebView.

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

所以大家能给我一些建议吗?

4

2 回答 2

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];
}
于 2013-04-15T13:25:18.583 回答
0

您需要启用UITextView. dataDetectorTypes这将允许您拥有 URL 和其他类型数据的链接。

于 2013-04-15T12:53:19.603 回答