Spa*_*Dog 1 objective-c cgfloat ios
我UILabels里面有一堆垂直的UIStackView。堆栈使所有标签具有相同的宽度和高度。
每个标签都有一个浮点数,如下所示:
但这在美学上是丑陋的。我想按点对齐数字。像这样:
我的问题之一是这些花车位于不同的标签中。
这些数字使用它来格式化:
[NSString stringWithFormat:@"%.2f", value];
Run Code Online (Sandbox Code Playgroud)
我不知道是否有可能。所以,我没有代码可以显示。有可能这样做吗?如何?
编辑:浮动在标签上左对齐。好的,我可以减少标签宽度并将它们向右对齐,但我想知道代码中是否有另一种解决方案,因为减少标签的宽度会导致界面上出现其他问题,从而破坏整个事情。
如果,正如您的编辑所说,您不想将标签设置textAlignment为正确(这当然是最简单的解决方案),这是另一种解决方案。你需要做两件事:
您需要使用等宽数字的字体。在 iOS 9 及更高版本中,系统字体默认不使用等宽数字,但有一些编程方法可以获得使用等宽数字的系统字体变体。您可以使用+[UIFont monospacedDigitSystemFontOfSize:weight:],或者如果您已经有一个UIFont对象,您可以通过向其字体描述符添加属性来获得等宽数字变体(如果有的话)。请参阅此答案以获取执行此操作的代码(在 Swift 中)。不幸的是,没有代码就无法在故事板或 xib 中做到这一点。
您需要在每个标签文本的开头添加足够的U+2007 Figure SPACE以使其长度相同。例如,如果它们都应该是五个字符长:
NSString *text = [NSString stringWithFormat:"%.2f", value];
while (text.length < 5) {
text = [@"\u2007" stringByAppendingString:text];
}
label.text = text;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |