首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在同一NSAttributedString中用多种颜色着色链接

在同一NSAttributedString中用多种颜色着色链接
EN

Stack Overflow用户
提问于 2013-05-15 01:40:09
回答 1查看 2.4K关注 0票数 2

我使用TTTAttributedLabel来检测UILabel (使用NSAttributedString)、iOS 6项目中链接的点击情况。我希望能够在我的标签中的链接有交替的颜色;我很好手动设置不同的链接范围的不同颜色,只要库处理链接检测与用户触摸我。TTTAttributedLabel类似乎最后应用了链接样式,因此特定范围的文本样式被为类实例设置的单个链接样式所覆盖。

为了深入研究并尝试修改TTTAttributedLabel代码(要么不应用链接样式,要么随后应用我自己的样式范围),我想在这里问是否有人有更好的想法来实现这一点。不同的库可以支持同一标签中不同颜色的链接范围吗?

EN

Stack Overflow用户

回答已采纳

发布于 2013-05-15 09:59:53

这已经被支持,只需使用:

代码语言:javascript
运行
复制
- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result
                           attributes:(NSDictionary *)attributes;

这允许您在每个链接的基础上指定自己的属性。例如,使用用于链接一次性着色的linkAttributes字典:

代码语言:javascript
运行
复制
if (linkAttributes) {
    [self addLinkWithTextCheckingResult:[NSTextCheckingResult linkCheckingResultWithRange:linkRange URL:[NSURL URLWithString:linkText]] attributes:linkAttributes];
}
else {
    [self addLinkToURL:[NSURL URLWithString:linkText] withRange:linkRange];
}

链接属性字典使用NSAttributedString.h中定义的键。例如:

代码语言:javascript
运行
复制
linkAttributes = @{
    NSForegroundColorAttributeName: [UIColor greenColor],
    NSUnderlineStyleAttributeName: @(NSUnderlineStyleNone)
};
票数 5
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16555425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档