gpt4 book ai didi

ios - 在同一个 NSAttributedString 中使用多种不同颜色的着色链接

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:30:21 26 4
gpt4 key购买 nike

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

正要深入研究并尝试修改 TTTAtributedLabel 代码(要么不应用链接样式,要么之后应用我自己的样式范围),我想我会问这里是否有人有更好的想法来考虑实现这一目标。不同的库是否可以开箱即用地支持同一标签中不同颜色的链接范围?

最佳答案

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

- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result
attributes:(NSDictionary *)attributes;

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

if (linkAttributes) {
[self addLinkWithTextCheckingResult:[NSTextCheckingResult linkCheckingResultWithRange:linkRange URL:[NSURL URLWithString:linkText]] attributes:linkAttributes];
}
else {
[self addLinkToURL:[NSURL URLWithString:linkText] withRange:linkRange];
}

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

linkAttributes = @{
NSForegroundColorAttributeName: [UIColor greenColor],
NSUnderlineStyleAttributeName: @(NSUnderlineStyleNone)
};

关于ios - 在同一个 NSAttributedString 中使用多种不同颜色的着色链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com