在 iOS 7 中,一些最重要的字符串绘制和指标计算方法是 depracated没有明显的替代方案。
NSString UIKit Additions Reference上的页面像血一样红。几乎所有的东西都被弃用了。 Xcode 向我发出 300 条警告。
我试图找出 Apple 的想法以及它们在 UIKit 文本系统中的变化,但我该从哪里开始呢?他们有没有提到为什么所有这些都被弃用以及文本系统现在的工作方式有何不同?以及如何适应?当标签可以缩放字体以适合大小时如何计算文本边界框? TextKit 是解决方案吗?
我在 Google 上花了 3 个小时,但没有找到有关如何解决此问题的有用信息。
我们应该在这里记录所有替代方案,以便所有遇到这种令人沮丧的弃用困惑的开发人员都能迅速找到内心的平静。
最佳答案
如果您查看反对意见,他们中的大多数反对使用 UIFont
来代替使用属性字典。
drawInRect:withFont: (Deprecated in iOS 7.0. Use drawInRect:withAttributes: instead.) drawInRect:withFont:lineBreakMode: (Deprecated in iOS 7.0. Use drawInRect:withAttributes: instead.)
sizeWithFont:(Deprecated in iOS 7.0. Use sizeWithAttributes: instead.) etc…
因此,如果您正在寻找起点,请学习如何使用属性字典来设置字体。看起来有很多弃用,但实际上您不需要学习那么多新东西。
如果您想更新代码以使用新的 TextKit 系统,请查看 WWDC 视频和 TextKit Programming Guide .
如果你想知道 Apple 如此弃用的原因,我猜这与 UILabel
和 UITextView
过去是如何构建在 WebView 上有关,现在它们构建在 TextKit 上。
关于iphone - iOS 7 中的文本和字符串绘制系统更改是否有概述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19196802/