在iOS 9上出现NSString boundingRectWithSize错误?

时间:2015-09-16 01:51:35

标签: ios nsstring ios9

我遇到了NSString和boundingRectWithSize的明确问题。

在iOS 8 iPhone上,一切都很健康。它使用特定大小的字体进行渲染时计算字符串的正确大小。 使用iOS 9 GM种子iPhone,宽度总是最大值为320,始终如一。如果字符串很短,低于320点,则会在iOS 8设备上正确且一致地报告,但当iOS 8设备报告宽度超过320时,iOS 9设备始终报告宽度为320。

该应用程序使用Xcode 6.4编译,即使用iOS 8 SDK。我使用的操作系统是OS X El Capitan GM种子。我听说,在El Capitan上使用Xcode 6并不是真的值得推荐。推荐的El Capitan Xcode版本是Xcode 7.由于商业原因,我还不能使用Xcode 7(但会很快尝试,只是为了尝试...)。 更新:我刚尝试使用Xcode 7和SDK 9.0进行编译 - 宽度仍然最大为320. Xcode和/或SDK版本不是问题。 iOS 9.0要么在这里被窃听,要么行为不同; - )

有人遇到过这个问题吗? 如果我找不到其他人,我想我会报告这个错误(我怀疑这是一个错误。或者只是不一致的行为,我真的不认为Apple意味着没有给出某种弃用警告)给Apple。

1 个答案:

答案 0 :(得分:2)

我找到了解决方案,或者如果你愿意的话,可以回答。

我认为iOS 9中没有错误,它只是表现不同,而且从我的理解,比iOS 8更正确。所以是的,不一致,但更好......

我输入boundingRectWithSize的大小总是设置为320x30ish。在iOS8上,这个函数很高兴地忽略了那里的最大宽度,并且在我的情况下返回了大于320的大小。但是,iOS 9正确地不会返回超过最大大小的大小。 所以我只是将maxsize更改为CGSizeMake(CGFLOAT_MAX, 30),现在iOS 8和9似乎都报告了相同的大小甚至超过320.案例结束。