我有一个UILabel
,它以格式MM:ss:SS
(分钟,秒,厘秒)显示计时器的输出,但是它会从左到右“摇动”厘秒变化 - 例如,“11”比“33”窄。iOS在数字变化时防止计时器UILabel'抖动'
有什么办法可以缓解吗?我尝试过将它定中心,给它一个固定的宽度,但他们似乎没有帮助。
我有一个UILabel
,它以格式MM:ss:SS
(分钟,秒,厘秒)显示计时器的输出,但是它会从左到右“摇动”厘秒变化 - 例如,“11”比“33”窄。iOS在数字变化时防止计时器UILabel'抖动'
有什么办法可以缓解吗?我尝试过将它定中心,给它一个固定的宽度,但他们似乎没有帮助。
从iOS 9.0开始,系统字体使用比例数字。如果你想要等宽数字,你可以使用+[UIFont monospacedDigitSystemFontOfSize:weight:]
获得一个变体字体。这仅适用于系统字体。
如果你想使用另一种字体,你可以尝试要求一个等宽的变体,但可能没有。给定一个UIFont
,你可以请求它的fontDescriptor
,然后要求使用-[UIFontDescriptor fontDescriptorWithSymbolicTraits:]
和UIFontDescriptorTraitMonoSpace
的一个相同的字体描述符,这个描述符是等宽的(不仅仅是数字)。然后,您可以通过将新的字体描述符传递到+[UIFont fontWithDescriptor:size:]
来创建新的字体。
但是,我怀疑是否有Impact的等宽变体。它不适合你的目的。
使用等宽字体,也称为固定间距,固定宽度或非比例字体,是一种字体,每个字母和字符都占用相同数量的水平空间。等宽字体的示例包括Courier,Courier New,Lucida Console,Monaco和Consolas
只有Courier,Courier New包含在Xcode项目中。但是,这些字体每个字符都有相同的宽度。不错。 – coolcool1994
给一个具有最高可能性的标签的固定宽度约束。因为前33:33:33应该完全包含在其中。给标签一些背景颜色。它会在一定程度上解决你的问题 –
使用textkit,你可以指定所有的数字应该是相等的宽度。 – milo526