如何使NSString始终使用固定的字体宽度

时间:2012-09-19 11:44:16

标签: objective-c ios nsstring font-size

我希望格式为“hh:mm:ss”的NSString使用与字符串“88:88:88”完全相同的像素空间量。这可能吗?

现在我正在使用:

// ... 
NSMutableString * strS = [[NSMutableString alloc] initWithFormat:@"%d", Seconds];
if (Seconds<10){
  [strS insertString:@"0" atIndex:0];
}

// Make the time to show
[ClocklLabel setText:[NSString stringWithFormat:@"%2@:%2@:%2@", strH,strM,strS]];

没有成功!

3 个答案:

答案 0 :(得分:4)

我认为你正在寻找一个monospaced font。尝试使用Courier:

UIFont *courier = [UIFont fontWithName:@"Courier" size:12.0f];
label.font = courier;

如果您正在尝试创建数字时钟显示器,您还可以为每个数字使用单独的标签,并根据需要定位标签。

答案 1 :(得分:1)

您可以使用等宽字体。如果您不想这样做,请使用UILabel并将adjustsFontSizeToFitWidth设置为YES。但是,在这种情况下,高度会有所不同。

答案 2 :(得分:0)

你问题的标题暗示你错过了一个重要的细节。 NSString仅包含实际文本。

不是NSString指示字体,颜色或其他属性。正如其他答案所示,您应该将字体设置为标签/文本字段/按钮或任何可视化小工具应显示字符串。

如果要同时结合文本和文本属性,可能需要检查NSAttributedString