【发布时间】:2017-05-10 12:01:24
【问题描述】:
我有一个UILabel,字体大小为50,文字为1。在运行时,其文本会更改为其他数字。
如果我把它放在superview 的中心,自动检测到的(固有内容大小)高度比实际文本大很多,这是因为它尽量不裁剪其他较低的字符,如g .
问题是我知道我不会使用除数字以外的其他字符。我也不想为它设置一个固定的高度约束。
【问题讨论】:
-
为什么不将行数设置为1?
-
设置为
1。 -
UIFont指标包括上升、下降、大写高度、x 高度等...所有这些都决定了字符如何适合容器(这是一个很好的图表cocoanetics.com/2010/02/understanding-uifont)。如果您真的想要获取单个字符“字形”的高度(和/或宽度),则需要使用 Core Text。那里有很多讨论和示例代码......很好的起点是搜索CTFontCreatePathForGlyph -
@DonMag,我使用了一种解决方法来摆脱这个要求,但你的解决方案似乎是解决方案,并且链接的网站有一些很好的信息,请将其发布为答案。
-
作为答案发布(包含更多细节)。
标签: ios autolayout uilabel