如何在 TTTAtributedLabel 中设置范围的背景颜色

Posted

技术标签:

【中文标题】如何在 TTTAtributedLabel 中设置范围的背景颜色【英文标题】:how to set background color of range in TTTAtributedLabel 【发布时间】:2014-05-27 14:43:18 【问题描述】:

不知道如何设置范围的背景颜色以使其看起来像荧光笔

下面的黄色不显示为背景色

NSArray *keys = [[NSArray alloc] initWithObjects:(id)kCTForegroundColorAttributeName,(id)kCTUnderlineStyleAttributeName, (id) NSBackgroundColorAttributeName, nil];
NSArray *objects = [[NSArray alloc] initWithObjects:[UIColor redColor],[NSNumber numberWithInt:kCTUnderlineStyleNone], [UIColor yellowColor], nil];
NSDictionary *linkAttributes = [[NSDictionary alloc] initWithObjects:objects forKeys:keys];

self.madLibLabel.linkAttributes = linkAttributes;


[self.madLibLabel addLinkToURL:[NSURL URLWithString:@"what://"] withRange:[self.madLibLabel.text rangeOfString:@"WHAT"]];

【问题讨论】:

【参考方案1】:

您应该使用kTTTBackgroundFillColorAttributeName 键而不是NSBackgroundColorAttributeName

这里是sn-p的代码:

NSArray *keys = [[NSArray alloc] initWithObjects:(id)kCTForegroundColorAttributeName,(id)kCTUnderlineStyleAttributeName, (id) kTTTBackgroundFillColorAttributeName, nil];
NSArray *objects = [[NSArray alloc] initWithObjects:[UIColor redColor],[NSNumber numberWithInt:kCTUnderlineStyleNone], [UIColor yellowColor], nil];
NSDictionary *linkAttributes = [[NSDictionary alloc] initWithObjects:objects forKeys:keys];

self.madLibLabel.linkAttributes = linkAttributes;


[self.madLibLabel addLinkToURL:[NSURL URLWithString:@"what://"] withRange:[self.madLibLabel.text rangeOfString:@"WHAT"]];

【讨论】:

以上是关于如何在 TTTAtributedLabel 中设置范围的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中设置 libsvm?

如何在 Laravel 中设置全局变量?

如何在代码中设置绑定?

如何在协议扩展中设置委托

如何在预览中设置环境对象

如何在jdbc中设置锁定超时