带有 UILabel 的可点击动态链接

Tappable Dynamic Links With UILabel

我正在寻找一种方法,不涉及 UITextView 或第 3 方框架,以便在标签上创建多个可点击链接。附注,带有字符串,因为标签是从服务器获取的,所以我们无法提前知道链接。

例如,假设有一个 post,它有两个链接,每个链接指向从服务器动态获取的随机站点。在检测到它们是我可以做的链接后,我该如何使它们可点击?

我已经搜索过 Whosebug,没有找到重复项或这个问题。如果您发现与此问题完全相同的内容,请随时将其标记为重复。我只看到人们建议使用 UITextView、第 3 方框架或使用属性字符串,但此时链接是已知的,它们不是动态获取的。

正如 @DonMag 指出的那样,在问题的评论中 - 我实际上可以使用 UITextView 并禁用滚动,这解决了我原来的原因,这让我转向用 UILabel.

来做

如果您想使用 UILabel class 那么:

  • 将 'isUserInteractionEnabled' 属性 设置为 true
  • 创建一个点击手势识别器并将其分配给标签的手势识别器集合插座
  • 写入 'IBAction func didTapLink(_ sender: Any)' 以打开选定的 link 并连接到点击手势识别器 'sent action selector' 插座
  • 设置 'text' 属性 为 link

如果您必须像在浏览器中那样显示 link 那么:

  • 设置 'attributedText' 属性 为 link
  • 将 'NSAttributedString.Key.link' 属性添加到 link 范围