使用自定义字体时,Autolayout 不使用大小 类

Autolayout does not use size classes when using a custom font

我正在使用自动布局为 iPad 和 iPhone 开发 Swift iOS8 应用程序。

我正在为我的 UILabel 使用自定义字体 (OpenSans)。

当我在情节提要中为特定大小 类(例如常规高度、紧凑宽度)声明特定字体大小时,生成的字体大小在 iPhone 上看起来不错,但在 iPad 它们总是与 iPhone 上的字体大小相同,而不是我指定的字体大小。

如果我将所有 UILabel 的字体改回系统字体而不是我的自定义字体,则字体大小是正确的。

所以这似乎是我的自定义字体的问题。

有人知道为什么会这样吗?

这是一个大小 class 的错误。自定义字体不适用于大小 classes。我发现的最佳方法是使用 UILabel subclass 替换字体并使用 IB 中的系统字体。

查看此答案以获得可能的解决方案:Custom Font Sizing in XCode6 Size Classes Not Working Properly w/ Custom Fonts

注意:我现在不在电脑旁,但回来后我会post一些示例代码。