将 max float 用于 boundingRectWithSize 的高度是否有效

Is it efficient to use max float for boundingRectWithSize for height

在 Objective-C 中计算给定文本所需的大小时,我们使用 boundingRectWithSize:options:attributes:context: 并将大小参数设置为约束大小。宽度通常是文本应该中断的地方,高度是更灵活的轴。大多数情况下,我看到 CGFLOAT_MAX 用于高度。我还看到了为父视图的边界指定的高度(或一些类似的合理值)。

[someText boundingRectWithSize:CGSizeMake(maxWidth, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size

我的问题是,这重要吗?一种方法比另一种更有效吗?

与"efficient"无关。这与他们的意思和他们所做的有关。

  • CGFLOAT_MAX 是一种保证高度可以达到所需高度的方法。如果您不关心文本的高度,请使用它。实际上,它是一个无限的潜在高度(当然 实际 高度不会是无限的)。

  • 如果您关心文本的高度,请使用有限的高度。换句话说,如果您有 理由 希望布局在无法适应特定高度时失败,请限制高度。如果生成的宽度或高度超过您指定的宽度或高度(或者,对于您的代码,如果您得到零尺寸),您将知道您失败了。