Xcode 6有一个新function,UILabel,UITextField和UIButton中的字体和字体大小可以根据当前设备configuration的大小等级自动设置。 例如,您可以设置UILabel在“任何宽度,高度紧凑”(例如横向上的iPhone)configuration上使用12号字体,在“普通宽度,常规高度”configuration(例如iPad上)上使用18号字体。 更多信息请点击这里: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/Size-ClassSpecificLayout.html 这在理论上是一个非常棒的function,因为它可能不需要根据设备configuration以编程方式在UIfunction上设置不同的字体。 现在,我有一些基于设备types设置字体的条件代码,但显然这意味着我必须在整个应用程序的任何地方以编程方式设置字体。 所以我最初对这个function真的很兴奋,但是我发现它在实际使用中有一个严重的问题(可能是一个bug)。 请注意,我正在针对SDK 8进行构build,并设置了iOS 8的最低部署目标,因此这与旧版iOS的兼容性无关。 问题是这样的:如果我为不同的大小类别设置不同的字体大小,并使用iOS提供的“系统”字体,一切都按预期工作,并且字体大小根据大小类别而改变。 如果我使用由我的应用程序提供的自定义字体(是的,我已经在我的应用程序捆绑中正确设置了它,因为它以编程方式工作),并将自定义字体设置为XCode 6故事板中的标签,该function也按预期工作。 但是,当我尝试使用不同大小的自定义字体的大小不同,在故事板,它突然不起作用。 configuration唯一的区别是我select的字体(自定义的一个与系统字体)。 相反,所有字体显示在设备和模拟器上作为默认大小的默认系统字体,而不pipe大小等级如何(我通过debugging器validation它将系统字体replace为故事板中指定的实际字体) 。 所以基本上大小类function似乎是自定义字体打破。 另外,有趣的是,自定义字体实际上在视图控制器的XCode 6“预览”窗格中正确显示和resize:只有在实际的iOS系统上运行时才会停止工作(这使我认为正在configuration它正确)。 我尝试了多种不同的自定义字体,似乎并不适用于其中的任何一种,但是如果我使用“系统”,它总是有效。 无论如何,有没有人在Xcode 6中看到这个问题? 任何想法是否这是一个错误在iOS 8,Xcode,或者我做错了什么? 我发现唯一的解决方法,就像我说的,是继续以编程方式设置字体,就像我已经为大约3个版本的iOS,因为这是行不通的。 但是,如果能够使用自定义字体,我希望能够使用此function。 使用系统字体对于我们的devise是不可接受的。 附加信息:从Xcode 8.0开始,bug已修复。