【问题标题】:detect urls in UILabel检测 UILabel 中的 url
【发布时间】:2012-11-27 10:04:19
【问题描述】:

我有一个 Tableview 并且 tableview 单元格被定制为​​有一个 UILabel。 UILabel 中的文本具有 URL。有没有办法检测 url,例如 UITextView 如何启用检测 URL,以便用户交互应该能够加载 url。

【问题讨论】:

    标签: ios ipad uitableview uilabel


    【解决方案1】:

    如果您只想识别 URL,可以使用 NSDataDetectorNSTextCheckingTypeLink 检查类型。

    如果您想以不同的方式绘制 URL,并且您的目标是 iOS 6,您可以使用 NSAttributedString 将 URL 变为蓝色或为它们加下划线或其他方式。如果您的目标是较旧版本的 iOS,您可能希望在 Internet 上寻找一些免费代码来绘制样式文本,例如 OHAttributedLabel

    如果你想让 URL 真正具有触感,你可以在标签上添加一个点击手势识别器,并尝试找出字符串的哪一部分被点击(有点复杂),或者在已经为您完成此操作的 Internet(例如 OHAttributedLabel),或者只是在表格视图单元格中放置 UITextView 而不是标签。

    【讨论】:

    • My answer here 的示例代码向您展示了如何使用 UITapGestureRecognizer 使 UILabel 的范围成为可点击的,正如 @RobMayoff 所建议的那样。
    【解决方案2】:

    正如 Rob 指出的那样,我们如何才能做到这一点太棒了。

    但是,我们可以使用机智,因此可以保存 ios 版本的问题(可能),只需使用 UILabel 和 UIButton。

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

    “www.myURL.com”

    现在,在其上方放置一个 UIButton(自定义类型的按钮),然后使用“______”(下划线)并将此按钮设置为与您的 UILabel 重叠,并且“下划线”必须位于您的标签下方。

    现在,只需在单击 URL 时根据需要执行按钮操作,您还可以在此处更改 textColor 等属性;还加载 URL 并导航到 UIWebView。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多