我熟悉新的 Apple 准则,即不应再通过名称访问系统字体,而应仅使用系统 API。除了这个新要求之外,似乎 SF 显示和文本字体已合并为一种字体。我开发的应用程序有用户内容,过去用户可以自由使用任何大小的 SF Display 或 SF Text,我们希望仍然支持这种行为。这似乎不再可能。一些代码:
UIFont *fontDisplay = [UIFont systemFontOfSize:10];
UIFont *fontText = [UIFont systemFontOfSize:20];
NSLog(@"display font %@ and %@", fontDisplay.fontName, fontDisplay.familyName);
NSLog(@"text font %@ and %@", fontText.fontName, fontText.familyName);
在 ios12 上,我们得到了两种不同的字体:
display font .SFUIText and .SF UI Text
text font .SFUIDisplay and .SF UI Display
在 ios13 上,我们得到一种字体:
display font .SFUI-Regular and .AppleSystemUIFont
text font .SFUI-Regular and .AppleSystemUIFont
在 ios12 上,我们曾经能够将“UIFont fontWithSize”与 fontDisplay 和 fontText 一起使用来获得小点版本的 Display 或大点版本的 Text,以支持作者创建的内容。在 ios 13 上,这不再可能。
有谁知道这种新行为的任何解决方法?