找到适合UILabel的PointSize

时间:2013-08-22 17:26:47

标签: ios fonts nsstring uilabel

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

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

我正在探索的方式:

1。)创建一个虚拟UILabel并将adjustsFontSizeToFitWidth设置为YES。然后从中获取pointSize。这看起来非常低效。

2.。)使用不同的值循环fontSize测试,直到大小返回相当于1行。似乎仍然有点矫枉过正。

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

1 个答案:

答案 0 :(得分:0)

您是否尝试过调用sizeToFit?

UIlabel * label = .....

[label sizeToFit];

希望有所帮助!

来自文档

  

sizeToFit   调整接收器视图的大小并移动它,使其只包含其子视图。

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

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