ios - NSStringboundingRectWithSize 在 iOS 9 上有 bug?

标签 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 要么在此处存在 bug,要么只是表现不同;-)

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

最佳答案

我已经找到了解决方案,或者如果您愿意的话请回答。

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

我提供给boundingRectWithSize:的大小始终设置为320x30ish。在 iOS8 上,这个函数很高兴地忽略了最大宽度,并返回了高于该宽度的尺寸,在我的例子中是高于 320。然而,iOS 9 不会返回超出该最大尺寸的尺寸。 因此,我只是将 maxsize 更改为 CGSizeMake(CGFLOAT_MAX, 30),现在 iOS 8 和 9 似乎都报告相同的大小,甚至超过 320。案例已结。

关于ios - NSStringboundingRectWithSize 在 iOS 9 上有 bug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598471/

相关文章:

objective-c - UITableView deleteRowsAtIndex 和数据源问题

ios - 如何获取纯 'globe' Unicode 字符

ios - Facebook 登录 iOS FBSDK

objective-c - 为什么实例指针的用法与数字指针的用法不同(objective-c,Mac)

cocoa-touch - NSString 到 NSUInteger

objective-c - Google Maps SDK for iOS 运行时警告 - 核心日期无法加载优化路径

ios - 警告 : attempt to present whose view is not in the window hierarchy

ios - NSUserDefaults removeObjectForKey

ios - 为什么我的 iOS 应用程序在返回前台模式后从第一个屏幕重新启动?

iphone - 按键拍照,无摄像头显示