xcode的6有一个新的特征,其中的字体和字体大小在UILabel
,UITextField
和UIButton
可自动基于尺寸类当前设备配置的设定,就在情节串连图板。例如,您可以将a设置为UILabel
在“任何宽度,紧凑高度”配置(例如,在横向iPhone上)上使用12号字体,在“常规宽度,常规高度”配置(例如,在iPad上)上使用18号字体。更多信息请点击这里:
developer.apple.com/size_class
从理论上讲,这是一个很棒的功能,因为它可能不需要基于设备配置以编程方式在UI功能上设置不同的字体。现在,我有一些条件代码可以根据设备类型设置字体,但是很明显,这意味着我必须在整个应用中的所有位置以编程方式设置字体。因此,最初,我对该功能感到非常兴奋,但是我发现它对我的实际使用存在严重问题(可能是一个错误)。请注意,我正在针对SDK 8构建并设置iOS 8的最低部署目标,因此这与与旧版本的iOS的兼容性无关。
问题是这样的: 如果我为不同的大小级别设置了不同的字体大小,并使用iOS提供的“系统”字体,那么一切都会按预期工作,并且字体大小会根据大小级别而变化。如果我使用应用程序提供的自定义字体(是的,我已经在我的应用程序捆绑包中正确设置了它,因为它可以以编程方式工作),并将该自定义字体设置为XCode 6故事板中的标签,该标签也可以按预期工作。但是,当我尝试对不同大小的类使用不同大小的自定义字体时,在情节提要中,它突然不起作用。配置上的唯一区别是我选择的字体(自定义字体与系统字体)。相反,所有字体都显示在装置和仿真器的默认系统字体在默认大小,无论大小类(我通过调试器,它是替代在故事板中指定的实际一个系统字体验证)。因此,基本上,自定义字体的大小类功能似乎已损坏。另外,有趣的是,自定义字体实际上在视图控制器的XCode 6“预览”窗格中正确显示和调整大小:仅当在实际的iOS系统上运行时,它才会停止工作(这使我认为我在正确配置它) 。
我尝试了多种不同的自定义字体,但它们似乎不适用于其中任何一种,但是如果我改用“系统”,它将始终有效。
无论如何,还有其他人在Xcode 6中看到此问题吗?
关于这是否是iOS 8,Xcode或其他错误的任何想法
我做错了吗?
正如我所说,我发现的唯一解决方法是继续以编程方式设置字体,就像我在大约三个iOS版本中一样,因为它确实可以工作。
但是,如果可以使用自定义字体,我希望能够使用此功能。我们的设计不接受使用系统字体。
其他信息: 从Xcode 8.0开始,该错误已修复。