SF UI Text-Light(新旧金山)字体无法使用。

7

我正在尝试为标签更改字体,但是字体名称为“新旧旧金山”,但无法生效。

将该字体导入项目并添加到info.plist中,这是我的代码:

labelname.font = [UIFont fontWithName:@"SF UI Text-Light" size:12];

如果我使用那个,就能正常工作。

labelname.font = [UIFont fontWithName:@"HelveticaNeue" size:12];

但新的旧金山字体不起作用。我不知道我错过了什么:( enter image description here

检查您的构建阶段,确保这些字体在“复制包资源”选项卡中,并尝试使用[UIFont fontWithName:@"SFUIText-Light"],消除它们之间的空格。 - Dovahkiin
SF UI Text-Light is its font family, and font name is .SFUIText-Light - DawnSong
5个回答

6

5

我尝试记录系统字体,并发现字体名称为“.SFUIText-Light”,因此

labelname.font = [UIFont fontWithName:@".SFUIText-Light" size:12];

这是工作。


4

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)]")
}

我给你举个例子。
字体文件(必须像其他文件一样将其添加到您的项目中): Screenshot 1: Font file 在“Info.plist”中的字体文件名(与文件扩展名完全相同): Screenshot 2: Info plist 最后,调试日志中的输出(由代码创建): Screenshot 3: Debug output 因此,您可以写下这个字体名称:
headerLabel.font = UIFont(name:"SFProDisplay-Heavy", size:30)

请使用这段代码。它节省了我的时间。我认为它非常有用!

2

添加更新:你应该在UIFont中使用系统字体API。例如:

UIFont.systemFont(ofSize: 12, weight: .light)

苹果公司明确告诉开发者不再依赖字体名称或文件系统表示来使用系统字体。

顺带一提,我为在您的应用程序中使用SF字体的许多特殊功能创建了一个库。请随意查看: https://github.com/djfitz/SFFontFeatures


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接