【问题标题】:Fonts on iOS deviceiOS 设备上的字体
【发布时间】:2011-12-26 19:34:39
【问题描述】:

我已阅读[UIFont familyNames] 提供的可用字体系列,但我在不同的设备上有各种列表(但使用相同的 iOS 版本)。有人能告诉我,上面的方法列出的字体是否包括其他已安装应用程序提供的自定义字体,或者这些字体是否只是 iOS 附带的字体?

【问题讨论】:

    标签: objective-c ios cocoa-touch fonts


    【解决方案1】:

    是的,它会显示您应用中的所有字体,包括您添加的自定义字体。这是列出所有字体的较短代码:

    目标-C

    for (NSString *familyName in [UIFont familyNames]){
        NSLog(@"Family name: %@", familyName);
        for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
            NSLog(@"--Font name: %@", fontName);
        }
    }
    

    斯威夫特 2

    for familyName:AnyObject in UIFont.familyNames() {
        print("Family Name: \(familyName)")
        for fontName:AnyObject in UIFont.fontNamesForFamilyName(familyName as! String) {
            print("--Font Name: \(fontName)")
        }
    }
    

    斯威夫特 3

     for familyName:String in UIFont.familyNames {
         print("Family Name: \(familyName)")
         for fontName:String in UIFont.fontNames(forFamilyName: familyName) {
             print("--Font Name: \(fontName)")
         }
     }
    

    【讨论】:

      【解决方案2】:

      这是列出所有字体的正确 sn-p:

          // List all fonts on iPhone
      NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
      NSArray *fontNames;
      NSInteger indFamily, indFont;
      for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
      {
          NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
          fontNames = [[NSArray alloc] initWithArray:
                       [UIFont fontNamesForFamilyName:
                        [familyNames objectAtIndex:indFamily]]];
          for (indFont=0; indFont<[fontNames count]; ++indFont)
          {
              NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
          }
      }
      

      【讨论】:

        【解决方案3】:

        您可以在此处找到 iOS 中不需要任何额外类即可构建的所有嵌入式字体的列表:List Of Available iOS Fonts

        【讨论】:

        • 此链接现已损坏
        【解决方案4】:

        Gruber 不久前发布了包含字体的链接:iOS Fonts

        编辑:他链接的网站是iosfonts.com

        【讨论】:

          【解决方案5】:

          我相信这些只是 iOS 附带的字体。您需要找到相应的 .otf.ttf 文件并将该文件包含在您的项目资源中的任何自定义字体。

          之所以这么说是因为,我想使用HelveticaNeue-UltraLight 字体。它在 iOS 中列出,您可以在 Xcode 中看到此字体选项。但是在选择后什么也没有发生。为此,我必须执行上述操作并放入 HelveticaNeue-UltraLight 字体文件。

          【讨论】:

            【解决方案6】:

            请试试这个代码:https://github.com/zynga/FontLabel/

            检查可用的 iOS 字体:

            for (indFamily=0; indFamily<[familyNames count]; ++indFamily){
              NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
              fontNames = [[NSArray alloc] initWithArray:[UIFont fontNamesForFamilyName:[familyNames objectAtIndex:indFamily]]];
              for (indFont=0; indFont<[fontNames count]; ++indFont){
                NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
              }
            }
            [fontNames release]; 
            

            【讨论】:

              猜你喜欢
              • 2017-12-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-03-13
              • 1970-01-01
              • 2012-03-23
              • 2021-02-26
              • 1970-01-01
              相关资源
              最近更新 更多