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

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

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

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

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

更新

还发现this很方便。

【问题讨论】:

    标签: ios5 uifont


    【解决方案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】:

    UIFontdocumentation 对此非常清楚:

    您可以使用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]);
              }
          

          【讨论】:

            猜你喜欢
            • 2012-05-02
            • 1970-01-01
            • 1970-01-01
            • 2013-07-07
            • 2015-07-04
            • 1970-01-01
            • 1970-01-01
            • 2015-08-12
            相关资源
            最近更新 更多