我有一种名为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”]]
最佳答案
您的打印输出说明了问题。 “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
关于ios - iOS11中的字体显示不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46633882/