NSString boundingRectWithSize 在 iOS 9 上有问题?
NSString boundingRectWithSize bugged on iOS 9?
我 运行 遇到了 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 我使用的是 OS X El Capitan GM 种子。我听说,不推荐在 El Capitan 上使用 Xcode 6。 El Capitan 的 Xcode 推荐版本是 Xcode 7。由于业务原因,我还不能使用 Xcode 7(但很快就会尝试,只是为了尝试...)。
更新:我刚刚尝试使用 Xcode 7 和 SDK 9.0 进行编译 - 宽度仍然最大为 320。Xcode and/or SDK 版本不是问题。 iOS 9.0 要么在这里被窃听,要么只是表现不同 ;-)
有人 运行 了解这个问题吗?
如果我找不到其他人,我想我会向 Apple 报告这个错误(我怀疑这是一个错误。或者只是不一致的行为,我真的不认为 Apple 的意思是没有给出某种弃用警告)。
我已经找到了解决办法,如果你愿意,也可以回答。
我认为 iOS 9 中没有错误,它只是表现不同,据我所知,比 iOS 8 更正确。所以是的,不一致,但是更好...
我提供给 boundingRectWithSize: 的尺寸总是设置为 320x30ish。在 iOS8 上,此函数愉快地忽略了那里的最大宽度和 returned 大小,在我的例子中超过 320。 iOS 9 但是正确地 return 尺寸不会超过最大尺寸。
所以我只是将 maxsize 更改为 CGSizeMake(CGFLOAT_MAX, 30)
现在 iOS 8 和 9 似乎都报告相同的大小甚至超过 320。案例结束。
我 运行 遇到了 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 我使用的是 OS X El Capitan GM 种子。我听说,不推荐在 El Capitan 上使用 Xcode 6。 El Capitan 的 Xcode 推荐版本是 Xcode 7。由于业务原因,我还不能使用 Xcode 7(但很快就会尝试,只是为了尝试...)。 更新:我刚刚尝试使用 Xcode 7 和 SDK 9.0 进行编译 - 宽度仍然最大为 320。Xcode and/or SDK 版本不是问题。 iOS 9.0 要么在这里被窃听,要么只是表现不同 ;-)
有人 运行 了解这个问题吗? 如果我找不到其他人,我想我会向 Apple 报告这个错误(我怀疑这是一个错误。或者只是不一致的行为,我真的不认为 Apple 的意思是没有给出某种弃用警告)。
我已经找到了解决办法,如果你愿意,也可以回答。
我认为 iOS 9 中没有错误,它只是表现不同,据我所知,比 iOS 8 更正确。所以是的,不一致,但是更好...
我提供给 boundingRectWithSize: 的尺寸总是设置为 320x30ish。在 iOS8 上,此函数愉快地忽略了那里的最大宽度和 returned 大小,在我的例子中超过 320。 iOS 9 但是正确地 return 尺寸不会超过最大尺寸。
所以我只是将 maxsize 更改为 CGSizeMake(CGFLOAT_MAX, 30)
现在 iOS 8 和 9 似乎都报告相同的大小甚至超过 320。案例结束。