我在代码中使用属性字符串。设置字体&某些特定范围的文字颜色。
为此,我使用下面的代码。
字体适用于范围,但未为该范围设置颜色。 NSForegroundColorAttributeName
可能存在一些问题。
如果有人有解决方案,请告诉我。
NSDictionary *attrs = @{ NSFontAttributeName:[UIFont systemFontOfSize:12.0f],NSForegroundColorAttributeName : [UIColor redColor] };
NSMutableAttributedString *titleStr = [[NSMutableAttributedString alloc]initWithString:@"New Message from Test"];
[titleStr addAttributes:attrs range:NSMakeRange(0, 3)];
答案 0 :(得分:1)
我也面临类似的问题。所以我将我的字符串作为HTML字符串传递,并按照这样完成。
NSString *name = @"<center><font color='#cd1c5f' size='4px'>"
@"New"
@"</font>"
@"<font color='#000000' size='4px'>"
@"Message from test"
@"</font></center>";
NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[name dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
_lbl_nm.attributedText=attrStr;
答案 1 :(得分:0)
检查>>设置属性标题后是否更改标签的文本颜色。这是你将面临这个问题的唯一方法。在之前>>设置标题。
cell.textLabel.textColor = [UIColor grayColor];
cell.textLabel.attributedText = titleStr;
我发现您的代码没有任何问题。我只是复制了你的代码并进行了测试,一切都很好。
答案 2 :(得分:0)
您可以附加两个属性字符串,其中包含不同的红色和&amp;属性。文字颜色。让我们尝试使用以下代码块。
NSDictionary *attrs = @{NSForegroundColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont systemFontOfSize:12.0]};
NSMutableAttributedString *titleString = [[[NSMutableAttributedString alloc] initWithString:@"New" attributes:attrDict] autorelease];
attrs = @{NSForegroundColorAttributeName:[UIColor lightTextColor], NSFontAttributeName:[UIFont systemFontOfSize:12.0]};
NSAttributedString *messageString = [[[NSAttributedString alloc] initWithString:@" Message from Test" attributes:attrs] autorelease];
[titleString appendAttributedString:messageString];
[self.titleTextView setAttributedText:titleString];