【问题标题】:Dynamic URLs for individual words in UILabel: Objective-CUILabel 中单个单词的动态 URL:Objective-C
【发布时间】:2016-03-31 20:01:48
【问题描述】:

我正在尝试创建一种方法,允许我根据在 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

提前感谢您的帮助!

【问题讨论】:

标签: ios objective-c ios7 nsstring


【解决方案1】:

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

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

KILabel 在 MIT 许可下可用。所以请随意使用

希望对你有帮助……

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 2016-10-27
      • 2012-02-07
      • 1970-01-01
      • 2023-02-05
      相关资源
      最近更新 更多