iOS 等宽十六进制值

iOS monospaced hexadecimal values

我喜欢 San Francisco 字体。并希望尽可能使用它。我有一个显示一系列标签的 table 视图,其中每个标签都是 6 个十六进制数字,例如

F0:1A:2B
12:CE:88

问题是他们没有很好地排列。我可以为字体启用等宽数字属性,但这不考虑字符 ABCDEF。我试过单一的等宽字体 (Menlo),它看起来很糟糕而且不合适。

我正在尝试为每个字符制作 8 个小标签(6 个十六进制数字加上两个 : 分隔符),这看起来像是一个大杂烩。有没有别的办法。我想知道是否有办法用 AttributedString 来使十六进制数字的宽度相同?

如果要使用按比例间隔的字体,则必须在适当的位置绘制字符。否则,找一个你喜欢的等宽字体。

为了完整起见,我应该 post 在接受@AaronBratcher 确认后我最终做了什么。

首先,我为以下元素创建了 5 个单独的 UILabel:

leftTwoDigits-leftSeparator-centerTwoDigits-rightSeparator-rightTwoDigits

我使用约束来约束它们的所有基线,并且每个基线之间的水平间距为 0。分隔符标签被简单地设置为 : 和正常颜色。 xxxTwoDigits 标签被赋予字符串 AAA 不是最宽的字符 C is。但是 A 就在附近。 C 太宽,A 足够宽。这些标签的颜色设置为 clear,所以实际上并没有显示出来。

然后又添加了 6 个 UILabel。同样的基线。前两个被限制在 leftTwoDigits 的前导和尾部,并被限制在宽度上匹配。对其他 4 个单元格重复此操作。使一切居中。并用各个数字分别填充它们。