UIFont fontWithName字体名称

时间:2012-06-18 13:29:12

标签: ios5 uifont

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

E.g。如果你想使用这段代码:

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

从哪里复制确切的短语“美国打字机”。 Xcode中是否有头文件?

更新

还找到this方便。

6 个答案:

答案 0 :(得分:236)

您可能会对调试器中的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” - 作者Chris Ching。我不得不更新,因为这是一个很有价值的新方式,结合所有缺少的部分在项目中使用自定义字体。

答案 1 :(得分:5)

UIFont的{​​{3}}非常明确:

  

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

你可以得到这样的姓氏:

NSArray *familyNames = [UIFont familyNames];

答案 2 :(得分: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);
    }];
}];

答案 3 :(得分:2)

label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];

答案 4 :(得分:2)

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

NSArray *fontFamilies = [UIFont familyNames];

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

答案 5 :(得分:2)

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

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)