【问题标题】:Find PointSize to fit UILabel找到适合 UILabel 的 PointSize
【发布时间】:2013-08-22 17:26:47
【问题描述】:

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

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

我正在探索的某种方式:

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

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

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

【问题讨论】:

    标签: ios fonts nsstring uilabel


    【解决方案1】:

    你试过只调用 sizeToFit 吗?

    UIlabel *label = .....

    [标签尺寸ToFit];

    希望有帮助!

    来自文档

    尺寸适合 调整并移动接收者视图,使其仅包含其子视图。

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

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

    【讨论】:

    • 感谢您的回复,但您已经忽略了一点。我没有问如何调整我的标签大小。我的标签有一个固定大小,我想知道它的最佳字体大小是多少,以便附近的其他标签可以共享相同的字体大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多