我有一个名为Poppins-bold的字体(你可以在Google字体上找到它),在iOS 11中显示不正确。在这里,您可以看到iOS 10的屏幕截图:
iOS 11中的截图:
显示的四种字体是:
我的错误是Poppins Bold通过代码。我的代码是:
label1.font = UIFont(name: "Poppins-Regular", size: 30)
label2.font = UIFont(name: "Poppins", size: 30)
怎么可能?
我在项目中打印了字体,这是我的结果:
字体系列名称= [Poppins]
字体名称= [[“Poppins-Regular”,“Poppins”]]
答案 0 :(得分:1)
您的打印输出解释了问题。 “Poppins”是一个姓氏。如果您同时拥有Poppins Regular和Poppins Bold,则系列名称默认为常规字体。这会阻止您通过其名称访问Poppins Bold字体,其中(不幸的是)是“Poppins”。
相反,使用字体描述符将Poppins Regular更改为Poppins Bold:
let font = UIFont(name: "Poppins-Regular", size: 30)!
let desc = font.fontDescriptor
let desc2 = desc.withSymbolicTraits(.traitBold)!
let font2 = UIFont(descriptor: desc2, size: 0)
self.lab.font = font2
答案 1 :(得分:0)
我可能会有点迟到,但如果您的问题仍然存在,可以通过更新https://fonts.google.com/specimen/Poppins中的字体文件来解决问题。您还需要使用“Poppins-Bold”字体名称而不是“Poppins”。