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