我使用以下代码片段来使用UIKit.h格式化iPad项目中的数字,但我无法弄清楚如何将负数显示为红色。我根据文档尝试过的是不行的。会对此提出一些建议。
NSNumberFormatter *decimalStyle = [[[NSNumberFormatter alloc] init] autorelease];
[decimalStyle setFormatterBehavior:NSNumberFormatterBehavior10_4];
[decimalStyle setNumberStyle:NSNumberFormatterDecimalStyle];
[decimalStyle setPositiveFormat:@"###,###,##0"];
[decimalStyle setNegativeFormat:@"(###,##0)"];
答案 0 :(得分:4)
目前你无法直接做到这一点,你能做的就是这样:
UILabel *numberLabel = ...; // The label that will display your number
numberLabel.text = [decimalStyle stringFromNumber:myNumber];
numberLable.textColor = (myNumber.floatValue < 0.0f) ? [UIColor redColor] : [UIColor blackColor];
答案 1 :(得分:2)
不确定这是否适用于iOS但在OS X上我是这样做的:
//create new instance of NSNumberFormatter
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
//create mutable dictionary for storing formatting attributes
NSMutableDictionary *negativeNumberColor = [NSMutableDictionary dictionary];
//set red colour
[negativeNumberColor setObject:[NSColor redColor] forKey:@"NSColor"];
//apply red colour to number formatter
[numberFormatter setTextAttributesForNegativeValues: negativeNumberColor];
//set formatter on NSTable column cell
[[tableColumn dataCell] setFormatter: numberFormatter];
答案 2 :(得分:1)
答案取决于你如何绘制文字,但想法是简单地用你想要的任何颜色绘制文本。例如,如果您在UILabel中绘制数字,则可以根据需要将标签的textColor
设置为红色或黑色。如果您使用Core Text绘制文本,则可以使用NSAttributedString并为相关文本添加颜色属性。如果您使用HTML呈现文本,那么您当然希望设置包含该文本的HTML标记的相应属性。