是否可以在同一个UILabel中使用多种颜色

时间:2012-05-28 19:23:33

标签: objective-c cocoa-touch quartz-graphics

我想在同一个UILabel中使用多种字体颜色。我不知道是否有可能。我真的不这么认为,但也许你们中的一些人有一个聪明的解决方案呢?也许像stringWithFormat这样的东西。 [NSString stringWithFormatAndColor: @"Text with color: %@ %@", text, color, text, color]

此图片说明了我要完成的任务:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用NSAttributedSting实现此目的。支持归因字符串的UILabel易于使用的替代品是TTTAtributedLabelOHAttributedLabel

根据我的经验,使用NSMutableAttributedStrings并逐步构建它会更容易。

NSMutableAttributedString *attrStr = [NSMutableAttributedString attributedStringWithString:@""];

NSMutableAttributedString *a = [NSMutableAttributedString attributedStringWithString:@"This is "];      
[a setTextColor:aColorObj];
NSMutableAttributedString *b = [NSMutableAttributedString attributedStringWithString:@"only one "];     
[b setTextColor:bColorObj];
NSMutableAttributedString *c = [NSMutableAttributedString attributedStringWithString:@"Label"];     
[c setTextColor:cColorObj];

[attrStr appendAttributedString:a];
[attrStr appendAttributedString:b];
[attrStr appendAttributedString:c];


OHAttributedLabel *attributedTextLabel = [[OHAttributedLabel] initWithFrame:frame]
[attributedTextLabel setAttributedText:attrStr];