2012-11-27 41 views
5

我有一个Tableview和tableview单元格被定制为​​具有UILabel。 UILabel中的文本具有URL。有没有办法像UITextView将启用检测URL一样检测URL,以便用户交互应该能够加载URL。在UILabel中检测网址

回答

5

如果您只想识别URL,则可以使用NSDataDetector和​​检查类型。

如果要以不同方式绘制URL,并且您的目标是iOS 6,则可以使用NSAttributedString将URL变为蓝色或将它们加下划线或任意。如果您的目标是旧版本的iOS,您可能需要在Internet上查找一些免费代码来绘制样式文本,如OHAttributedLabel

如果您希望实际使网址触摸敏感,您可以在标签上添加一个轻击手势识别器,并尝试找出哪部分字符串被点击(有点复杂),或者查找一些免费代码互联网已经为你做了(比如OHAttributedLabel),或者只在表格视图单元格中输入UITextView而不是标签。

+0

我的[这里的答案](http://stackoverflow.com/a/29352519/168594)有一个示例代码,它向您展示了如何使用UITapGestureRecognizer使您的UILabel的可点击范围变得如@RobMayoff所示。 – zekel

-4

正如Rob指出的那样,我们如何才能取得同样的效果。

但是,只要使用UILabel和UIButton,我们就可以使用一个机会来保存ios版本的问题(可能)。

我们需要做的是,无论是从IB还是故事板,只需将一个字符串作为URL的UILabel(用作标题),说;

“www.myURL.com”

现在,它上面,放置一个UIButton(按钮,自定义类型),只是用“______”(下划线),并设置该按钮重叠您的UILabel,也'下划线'必须位于您的标签下方。

现在,只需按下按钮的操作即可,因为您需要点击URL,这里还可以更改textColor等属性;也加载URL并导航到UIWebView。