0

给定UILabel宽度和一个字符串。获得恰好适合标签的 pointSize 的最佳方法是什么?

示例:我的标签宽度为 300 像素,字符串为@"Hello, my name is byte". 我想知道什么是最大的字体pointSize,而不是在 300 像素中截断它。

我正在探索的某种方式:

1.) 创建一个虚拟对象UILabel并设置adjustsFontSizeToFitWidthYES. 然后从中获取 pointSize 。这似乎非常低效。

2.) 用不同的值循环 fontSize 测试,直到返回的大小等于 1 行。还是显得矫枉过正。

有没有更好的方法来解决这个问题?

4

1 回答 1

0

你试过只调用 sizeToFit 吗?

UIlabel *标签 = .....

[标签尺寸适合];

希望有帮助!

从文档

sizeToFit 调整并移动接收者视图,使其仅包含其子视图。

  • (void)sizeToFit 讨论 当您想要调整当前视图的大小以便它使用最合适的空间量时调用此方法。特定的 UIKit 视图会根据自己的内部需求自行调整大小。在某些情况下,如果视图没有超级视图,它可能会根据屏幕边界调整自身大小。因此,如果您希望给定视图根据其父视图调整自身大小,则应在调用此方法之前将其添加到父视图。

您不应覆盖此方法。如果要更改视图的默认大小信息,请改写 sizeThatFits:。该方法执行任何需要的计算并将它们返回给该方法,然后该方法进行更改。

于 2013-08-22T21:25:48.617 回答