检测UILabel中的url

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

如果您只想识别这些URL,则可以使用带有NSTextCheckingTypeLink检查types的NSTextCheckingTypeLink

如果你想以不同的方式绘制URL,而且你的目标是iOS 6,你可以使用一个NSAttributedString把URL变成蓝色或者给它们加上下划线。 如果你的目标是老版本的iOS,你可能需要在Internet上寻找一些免费的代码来绘制样式文本,比如OHAttributedLabel

如果你想让url触摸敏感,你可以在标签上添加一个轻击手势识别器,并试图找出哪个部分的string被窃听(有点复杂),或者在互联网上寻找一些免费的代码为你做(像OHAttributedLabel ),或者只是把UITextView放在表格视图单元格而不是标签。

正如罗布所指出的那样,我们怎样才能达到同样的效果呢。

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

我们需要做的是,无论是从IB还是故事板,只要将一个string作为URL的UILabel(使用这个标题),说:

“www.myURL.com”

现在,在它上面,放置一个UIButton(自定义types的button),并使用“______”(下划线),并将此button设置为与UILabel重叠,并且“下划线”必须位于标签下方。

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