我正在尝试更改标签的字体,但它没有使用字体名称:new new sancisco。
将该字体导入项目并添加到info.plist中,这是我的代码
labelname.font = [UIFont fontWithName:@"SF UI Text-Light" size:12];
如果我使用它可以正常工作
labelname.font = [UIFont fontWithName:@"HelveticaNeue" size:12];
但新旧金山的字体并不起作用。我不知道我错过了什么:(
答案 0 :(得分:6)
发生这种情况是因为您使用了错误的字体系统名称。尝试使用
labelname.font = [UIFont fontWithName:@"SFUIText-Light" size:12];
如何查找系统字体名称,请参见此处 Adding custom fonts to iOS app finding their real names
答案 1 :(得分:5)
我尝试记录系统字体并找到字体名称" .SFUIText-Light" ,所以
labelname.font = [UIFont fontWithName:@".SFUIText-Light" size:12];
这是工作。
答案 2 :(得分:4)
请使用https://www.dropbox.com/s/dyw7kl0mtrftjix/San-Francisco-UI-and-COMPACT.zip?dl=0此链接并下载.ttf而不是.otf文件。我相信你得到了结果,祝你好运。
答案 3 :(得分:2)
重要,真的。
使用此代码,它非常非常有用。有了它,您可以知道字体的真实名称。
let fontFamilyNames = UIFont.familyNames
for familyName in fontFamilyNames {
print("------------------------------")
print("Font Family Name = [\(familyName)]")
let names = UIFont.fontNames(forFamilyName: familyName)
print("Font Names = [\(names)]")
}
我给你看一个例子。
字体文件(您必须将其与任何其他文件一样添加到您的项目中):
“ Info.plist”中的字体文件名(与文件扩展名完全相同):
最后,日志Debug中的输出(由代码创建)
因此,您可以输入以下字体名称:
headerLabel.font = UIFont(name:"SFProDisplay-Heavy", size:30)
使用此代码。它节省了我的时间。 (我认为)非常有用!
答案 4 :(得分:1)
添加更新:您应该在UIFont中使用系统字体API。例如:
UIFont.systemFont(ofSize: 12, weight: .light)
Apple特别要求开发人员不再依赖系统字体的字体名称或文件系统表示。
另外,我编写了一个库,用于在应用程序中使用SF字体的许多特殊功能。随意查看: https://github.com/djfitz/SFFontFeatures