Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSMutableAttributedString iOS6中的可单击URL_Objective C_Ios_Ios6 - Fatal编程技术网

Objective c NSMutableAttributedString iOS6中的可单击URL

Objective c NSMutableAttributedString iOS6中的可单击URL,objective-c,ios,ios6,Objective C,Ios,Ios6,我正在开发一个有趣的应用程序,从远程网络服务(如Twitter)接收消息。有时,这些消息包含URL:s,我想让它们可以点击。我不知道哪种方法最好。我尝试过NSLinkAttributeName,但它不适用于iOS。是否可以创建一个透明按钮并将其放置在textview的正确位置上方?我怎么能做到呢?还是有更好/更简单的方法?url的位置和长度可能会有所不同 一个选项是使用UIDataDetectorTypeLink。检查这个 其他一些选项是UIWebview,其中的代理可以处理触摸其中的URL。另

我正在开发一个有趣的应用程序,从远程网络服务(如Twitter)接收消息。有时,这些消息包含URL:s,我想让它们可以点击。我不知道哪种方法最好。我尝试过NSLinkAttributeName,但它不适用于iOS。是否可以创建一个透明按钮并将其放置在textview的正确位置上方?我怎么能做到呢?还是有更好/更简单的方法?url的位置和长度可能会有所不同

一个选项是使用
UIDataDetectorTypeLink
。检查这个

其他一些选项是
UIWebview
,其中的代理可以处理触摸其中的URL。另一个选择是


对于您提出的其他问题,请勾选此项,有两种很好的解决方法:

1。CoreText,或者更确切地说是它的包装,如

这是最强大的解决方案。它支持Datadetectortypes(尽管您最好先进行自己的性能检测,然后再显示),而且它相对流行

但是,它可能会影响tableview的滚动性能,具体取决于您的使用情况

2。在标签上方动态放置按钮,如


这是一个简单的解决办法。IFTweetLabel基本上是UILabel的一个插件,它的开箱即用性能非常好。但是,如果您希望对其进行过多的自定义,那么最终会遇到它的限制。更不用说它并不是100%都表现完美。YMMV.

NSLinkAttributeName
可通过
UITextView
进行点击,但不能通过
UILabel
进行点击。请注意,UITextView必须是可选择的(在脚本中)

快速演示:

let attributedText = NSMutableAttributedString(string: "Hello world")
attributedText.addAttribute(.link, value: URL(string: "https://example.com")!, range: NSRange(location: 0, length: attributedText.length))
textView.attributedText = attributedText

谢谢,UIDataDetectorTypeLink似乎适用于链接。但是我想知道是否有可能改变链接的外观,或者更具体地说是颜色。并进行更改,使其在自定义UIWebView而不是Safari中打开?通过对UITextView进行子类化,是否可以创建自定义UIDataDetectorTypes,如@References和#hashtags。请检查此项,查看、并使用筛选器更改UITextView链接的颜色。。我已经用这些链接更新了我的答案。谢谢,我决定使用TTributedLabel。
let attributedText = NSMutableAttributedString(string: "Hello world")
attributedText.addAttribute(.link, value: URL(string: "https://example.com")!, range: NSRange(location: 0, length: attributedText.length))
textView.attributedText = attributedText