带有UILabel的可点击动态链接



我正在寻找一种方法,不涉及UITextView或第三方框架,在标签上创建多个可点击的链接。标签的附带说明是,它是从服务器上获取的,所以我们不提前知道链接。

举个例子,假设有一个帖子,它有两个链接,每个链接都指向从服务器动态获取的随机站点。在检测到它们是链接(我可以这样做(之后,我将如何使这些链接可点击?

我已经搜索了StackOverflow,没有重复或这个问题,我可以找到。如果你发现了与这个问题完全相似的问题,可以随意将其标记为重复。我所看到的只是有人建议使用UITextView,一个第三方框架,或者使用属性字符串,但链接在那时是已知的,它们不是动态获取的。

正如@DonMag所指出的,在问题的评论中,我实际上可以使用UITextView,并禁用滚动,这修复了我最初的原因,这让我转而使用UILabel

如果你想用UILabel类来做,那么:

  • 将"isUserInteractionEnabled"属性设置为true
  • 创建一个Tap手势识别器,并将其分配给标签的手势识别器集合出口
  • 写入"IBAction func didTapLink(_ sender:Any(",打开选定的链接并与点击手势识别器"send action selector"出口连接
  • 使用链接设置"text"属性

如果必须在浏览器中显示链接,则:

  • 使用链接设置"attributedText"属性
  • 将"NSAttributedString.Key.link"特性添加到链接范围

最新更新