UIFont fontWithName 字体名称

Posted

技术标签:

【中文标题】UIFont fontWithName 字体名称【英文标题】:UIFont fontWithName font name 【发布时间】:2012-06-20 11:42:53 【问题描述】:

假设您想要 UIFont 的特定字体。 你怎么知道它叫什么?

例如如果您想使用此代码:

[someUILabelObject setFont:[UIFont fontWithName:@"American Typewriter" size:18]];

您从哪里复制“美国打字机”这个词组。 Xcode中有头文件吗?

更新

还发现this很方便。

【问题讨论】:

【参考方案1】:

在调试器中作为 Quick Win 可能会让您感兴趣:

(lldb) po [UIFont fontNamesForFamilyName:@"Helvetica Neue"]

(id) $1 = 0x079d8670 <__NSCFArray 0x79d8670>(
HelveticaNeue-Bold,
HelveticaNeue-CondensedBlack,
HelveticaNeue-Medium,
HelveticaNeue,
HelveticaNeue-Light,
HelveticaNeue-CondensedBold,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-BoldItalic,
HelveticaNeue-Italic
)

2018 年 11 月 - 更新 “Custom Fonts with Xcode”的新 swift-y 参考 - 由 Chris Ching 撰写。我不得不更新,因为这是一个很有价值的帖子,它结合了所有缺失的部分以在项目中使用自定义字体。

【讨论】:

很有帮助,我用过:NSLog(@"%@", [UIFont fontNamesForFamilyName:@"Helvetica Neue"]); 您可能对上面的 2018 年 11 月更新 Linke 感兴趣! “使用 Xcode 自定义字体” @andreas-supersmart,您的回答在 7 年后支持我:-)。谢谢【参考方案2】:

UIFont 的 documentation 对此非常清楚:

您可以使用fontNamesForFamilyName: 方法来检索 给定字体系列的特定字体名称。 (注意:是类方法)

你可以像这样得到姓氏:

NSArray *familyNames = [UIFont familyNames];

【讨论】:

【参考方案3】:

试试

NSArray *familyNames = [UIFont familyNames];
[familyNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
    NSLog(@"* %@",obj);
    NSArray *fontNames = [UIFont fontNamesForFamilyName:obj];
    [fontNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
        NSLog(@"--- %@",obj);
    ];
];

【讨论】:

【参考方案4】:
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];

【讨论】:

虽然此代码示例可能会回答这个问题,但最好在您的回答中包含一些基本解释。就目前而言,这个答案对未来的读者几乎没有价值。 不同意之前的评论——这正是我所需要的。【参考方案5】:

我做了一个库来解决这个问题:

https://github.com/Nirma/UIFontComplete

所有字体都表示为一个系统 Font 枚举,并且该库还详细说明了在自述文件中将其与您的自定义字体一起使用的方法。

基本上是这样的:

let font = UIFont(name: "Arial-BoldItalicMT", size: 12.0)

替换为以下任一:

let font = UIFont(font: .arialBoldItalicMT, size: 12.0)

或者这个:

let myFont = Font.helvetica.of(size: 12.0)

【讨论】:

【参考方案6】:

这是您获取项目中所有字体名称的方法。就这样……3行代码

NSArray *fontFamilies = [UIFont familyNames];

    for (int i=0; i<[fontFamilies count]; i++)
    
        NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
    

【讨论】:

以上是关于UIFont fontWithName 字体名称的主要内容,如果未能解决你的问题,请参考以下文章

iOS添加自定义自体 [UIFont fontWithName: size:](英文有效)

iOS添加自定义自体 [UIFont fontWithName: size:](英文有效)

UIFont 设置字体

UIFont - 设置字体

[NSFont fontWithName] 等效的 CoreText

iOS 设置字体样式