UILabel 中单个单词的动态 URL:Objective-C

Dynamic URLs for individual words in UILabel: Objective-C

我正在尝试创建一种方法,允许我根据在 UILabel 中单击的单词打开 url。

目前,我可以更改以主题标签(“#”)开头的单词的颜色。

// Change words that start with # to blue
NSString *aString = [NSString stringWithFormat:@"%@", photoClass.description];
NSMutableAttributedString *attribString = [[NSMutableAttributedString alloc] initWithString:aString];
NSArray *words = [aString componentsSeparatedByString:@" "];
for (NSString *word in words){
    if ([word hasPrefix:@"#"]) {
        NSRange range = [aString rangeOfString:word];
        [attribString addAttribute:NSForegroundColorAttributeName value:[AnimatedMethods colorFromHexString:@"#47A8F2"] range:range];
   }
}

有没有办法让每个更改的词在用户点击该词时打开 url?

例如,如果我有字符串 The #quick brown fox #jumped over the lazy dog,如果选择 #quick,我想打开 url A,如果选择 #jumped,我想打开 url B已选中。

提前感谢您的帮助!

您可以使用 NSLinkAttributeName。添加属性的方式与添加颜色的方式相同。该值应该是 NSURL.

NSURL *url = [NSURL urlWithString:@"your.url.com"];
[attribString addAttribute:NSLinkAttributeName value:url range:range];

根据我的说法,您可以将此第三方库用于您的目的

KILabel iOS 7 及更高版本的 UILabel 的简单易用替代品,突出显示 URL、twitter 样式用户名和主题标签等链接,并使它们可触摸。

KILabel 在 MIT 许可证下可用。所以请放心使用

希望对你有所帮助...