带有 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 范围
我正在寻找一种方法,不涉及 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 范围