我有一个 Tableview 并且 tableview 单元被定制为有一个 UILabel。UILabel 中的文本具有 URL。有没有办法检测 url,例如 UITextView 如何启用检测 URL,以便用户交互应该能够加载 url。
2 回答
如果您只想识别 URL,可以使用NSDataDetector
检查NSTextCheckingTypeLink
类型。
如果您想以不同的方式绘制 URL,并且您的目标是 iOS 6,您可以使用NSAttributedString
将 URL 变为蓝色或为它们加下划线或其他方式。如果您的目标是较旧版本的 iOS,您可能希望在 Internet 上寻找一些免费代码来绘制样式文本,例如OHAttributedLabel
.
如果你想真正让 URL 触摸敏感,你可以在标签上添加一个点击手势识别器,并尝试找出字符串的哪一部分被点击(有点复杂),或者在 Internet 上寻找一些已经免费的代码为你做(如OHAttributedLabel
),或者只是UITextView
在表格视图单元格中放置一个而不是标签。
正如 Rob 指出的那样,我们如何才能做到这一点真是太棒了。
但是,我们可以使用机智,因此可以保存 ios 版本的问题(可能),只需使用 UILabel 和 UIButton。
我们需要做的是,无论是从 IB 还是故事板,只需放置一个带有字符串作为 URL 的 UILabel(使用它作为标题),比如说;
“www.myURL.com”
现在,在其上方放置一个 UIButton(自定义类型的按钮),然后使用“______”(下划线)并将此按钮设置为与您的 UILabel 重叠,并且“下划线”必须位于您的标签下方。
现在,只需在单击 URL 时根据需要执行任何您需要的按钮操作,您还可以在此处更改 textColor 等属性;还加载 URL 并导航到 UIWebView。