【问题标题】:How to make a NSString always use fixed font width如何使 NSString 始终使用固定的字体宽度
【发布时间】:2012-09-11 17:18:40
【问题描述】:

我想要一个格式为“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]];

没有成功!

【问题讨论】:

    标签: objective-c ios nsstring font-size


    【解决方案1】:

    我认为您正在寻找monospaced font。以 Courier 为例:

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

    如果您尝试创建数字时钟显示,您也可以简单地为每个数字使用单独的标签,然后随意放置标签。

    【讨论】:

    • 非常感谢您的回答!
    • @JohnWilund,请接受最有帮助的答案。只需点击一下。
    【解决方案2】:

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

    【讨论】:

    • 我这样做以及使用等宽字体。
    【解决方案3】:

    您的问题标题暗示您遗漏了一个重要细节。 NSString 仅包含实际文本。

    决定字体、颜色或其他属性的不是NSString。正如其他答案所建议的那样,您应该将字体设置为标签/文本字段/按钮或任何应该显示字符串的视觉小工具。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 2023-03-21
      • 1970-01-01
      • 2010-09-25
      • 2011-06-15
      相关资源
      最近更新 更多