0

我喜欢旧金山字体。如果可能的话,我想使用它。我有一个表格视图,显示一系列标签,其中每个标签是 6 个十六进制数字,例如

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

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

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

4

2 回答 2

2

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

于 2018-04-19T15:15:32.000 回答
0

为了完整起见,我应该在接受@AaronBratcher 确认的内容后发布我最终所做的事情。

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

leftTwoDigits-leftSeparator-centerTwoDigits-rightSeparator-rightTwoDigits

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

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

于 2018-04-23T23:23:22.573 回答