2

在 iOS 7 中,一些最重要的字符串绘制和度量计算方法已被弃用,没有给出明显的替代方案。

在此处输入图像描述

NSString UIKit Additions Reference上的页面像血一样红。几乎所有东西都被弃用了。Xcode 向我抛出 300 个警告。

我试图找出苹果的想法以及它们在 UIKit 文本系统中的变化,但我该从哪里开始呢?他们是否在某个地方提到了为什么所有这些都被弃用以及文本系统现在的工作方式有何不同?以及如何适应?当标签可以缩放字体以适应大小时如何计算文本边界框?TextKit 是解决方案吗?

我在 Google 上花了 3 个小时,但没有找到有关如何解决此问题的有用信息。

我们应该在这里记录所有替代方案,以便所有遇到这种令人沮丧的弃用混乱的开发人员都能迅速找到内心的平静。

4

1 回答 1

1

如果您查看弃用,其中大多数弃用使用UIFont属性字典来代替。

drawInRect:withFont: (在 iOS 7.0 中不推荐使用。使用 drawInRect:withAttributes: 代替。) drawInRect:withFont:lineBreakMode: (在 iOS 7.0 中不推荐使用。使用 drawInRect:withAttributes: 代替。)
sizeWithFont:(在 iOS 7.0 中不推荐使用。使用 sizeWithAttributes: 代替.) 等等……</p>

因此,如果您正在寻找一个起点,请学习如何使用属性字典来设置字体。它看起来像很多弃用,但你实际上并不需要学习那么多新东西。

如果您想更新您的代码以使用新的 TextKit 系统,请查看 WWDC 视频和TextKit 编程指南

如果您想知道 Apple 如此弃用的原因,我猜这UILabelUITextView过去是如何构建 Web 视图有关,现在它们是构建在 TextKit 之上的。

于 2013-10-05T10:52:57.610 回答