gpt4 book ai didi

ios - 将 float 与两位小数对齐

转载 作者:行者123 更新时间:2023-12-01 17:36:52 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Decimal point alignment in iOS UILabel during countdown?

(1 个回答)


4年前关闭。




我有一堆UILabels在垂直 UIStackView .堆栈使所有标签具有相同的宽度和高度。

每个标签都有一个浮点数,如下所示:

enter image description here

但这在美学上是丑陋的。我想按点对齐数字。像这样:

enter image description here

我的问题之一是这些花车位于不同的标签中。

这些数字使用它来格式化:

[NSString stringWithFormat:@"%.2f", value];

我不知道是否有可能。所以,我没有要显示的代码。有可能这样做吗?如何?

编辑: float 在标签上左对齐。好的,我可以减小标签宽度并将它们向右对齐,但我想知道代码中是否有另一种解决方案,因为减小标签的宽度会导致界面上的其他问题,使整个事情变得糟糕。

最佳答案

如果,正如您的编辑所说,您不想设置标签'textAlignment向右(这当然是最简单的解决方案),这是另一个解决方案。你需要做两件事:

  • 您需要使用等宽数字的字体。在 iOS 9 及更高版本中,系统字体为 不是 默认情况下使用等宽数字,但有一些编程方法可以获得使用等宽数字的系统字体的变体。您可以使用 +[UIFont monospacedDigitSystemFontOfSize:weight:] ,或者如果您已经拥有 UIFont对象,您可以通过向其字体描述符添加属性来获得等宽数字变体(如果有的话)。见 this answer用于执行此操作的代码(在 Swift 中)。不幸的是,没有代码在 Storyboard 或 xib 中无法做到这一点。
  • 您需要添加足够的U+2007 FIGURE SPACE s 到每个标签的文本的开头,以使它们都具有相同的长度。例如,如果它们都应该是五个字符长:
    NSString *text = [NSString stringWithFormat:"%.2f", value];
    while (text.length < 5) {
    text = [@"\u2007" stringByAppendingString:text];
    }
    label.text = text;
  • 关于ios - 将 float 与两位小数对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40497852/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com