【问题标题】:iPhone system fontiPhone系统字体
【发布时间】:2011-04-19 19:05:21
【问题描述】:

iPhone 上默认系统字体的名称是什么?

我想检索它以自定义 UIView

【问题讨论】:

    标签: ios iphone fonts typeface


    【解决方案1】:

    afaik iPhone 默认使用“Helvetica

    【讨论】:

    • 如其他答案所见,这取决于iOS版本
    【解决方案2】:

    令字体纯粹主义者高兴 无处不在,iPhone系统 界面使用 Helvetica 或变体 其中。

    最初的 iPhone、iPhone 3G 和 iPhone 3GS系统界面使用 黑体字。正如第一次注意到的 总是优秀的 DaringFireball, iPhone 4 使用了经过细微修改的字体 称为“Helvetica Neue”。 DaringFireball 还指出,这 变化与 iPhone 4 有关 显示而不是 iOS 4 操作系统和旧 iPhone 运行 iOS 4 的机型仍然使用 Helvetica 作为系统字体。

    之前发布的 iPod 型号 iPhone 使用 Chicago、Espy Sans、 或无数并在之后使用 Helvetica iPhone 的发布。

    来自http://www.everyipod.com/iphone-faq/iphone-who-designed-iphone-font-used-iphone-ringtones.html

    对于 iOS9,它已更改为 San Fransisco。请参阅http://developer.apple.com/fonts 了解更多信息。

    【讨论】:

    • 目前是 Helvetica Neue Regular 字体。
    • 对于 iOS9,它已更改为 San Fransisco。请参阅developer.apple.com/fonts 了解更多信息。
    【解决方案3】:

    如果您正在进行程序化定制,请不要对系统字体进行硬编码。使用UIFont systemFontOfSize:UIFont boldSystemFontOfSize:UIFont italicSystemFontOfSize (Apple documentation)。

    自从 iOS 7 将系统字体更改为 Helvetica Neue 以来,这一点变得尤为重要。

    自从 iOS 9 将系统字体再次更改为 San Francisco 以来,这已成为 super 尤其重要。

    【讨论】:

    • 我不会更改系统字体,这是个坏主意。但我希望它用于 UIWebView 中的一些 html。
    • 这不会改变系统字体 - 它只是为您提供UIFont 使用给定大小的系统字体实例,并且无论未来的 iOS 更新如何,都将始终返回系统字体。
    • 我在 UIWebView 中看到的字体在我看来不像 Helvetica。我可能错了,但为我的视图设置字体消除了我的怀疑。
    • “不要对系统字体进行硬编码”是好建议,也可能是非常糟糕的建议,具体取决于具体情况。就个人而言,我希望我已经硬编码 Helvetica... 现在就这样做。
    • 完全同意,请不要硬编码。这应该是这个问题的正确答案
    【解决方案4】:

    我不确定是否有获取默认系统字体名称的 api。所以我只是得到这样的名字:

        //get system default font
        UILabel *label = [[UILabel alloc] init];        
        fontname = label.font.fontName;
        [label release];
    

    看起来很愚蠢,但它确实有效。

    【讨论】:

    • UIFont *font = [UIFont systemFontOfSize: 12.0];
    【解决方案5】:

    您可以随时使用

    UIFont *systemFont = [UIFont systemFontOfSize:12];
    NSLog(@"what is it? %@ %@", systemFont.familyName, systemFont.fontName);
    

    答案是:

    最高至 iOS 6

     Helvetica Helvetica
    

    iOS 7

    .Helvetica Neue Interface .HelveticaNeueInterface-M3
    

    但你可以使用Helvetica Neue

    【讨论】:

    【解决方案6】:

    这里有一些支持 iOS 7 的更新。它现在有Dynamic Font Size

    对于所有支持“动态类型”的应用,用户可以选择一个 iOS 7 中适用于系统范围的字体大小,只需访问 “设置”下的“常规”部分并选择“字体大小”。

    UIFont *dynamicFont  = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
    

    还有常量列表,详细解释是here

    NSString *const UIFontTextStyleHeadline;
    NSString *const UIFontTextStyleSubheadline;
    NSString *const UIFontTextStyleBody;
    NSString *const UIFontTextStyleFootnote;
    NSString *const UIFontTextStyleCaption1;
    NSString *const UIFontTextStyleCaption2;
    

    【讨论】:

      【解决方案7】:
      UIFont (UIInterface.h) 的 UIFontSystemFonts 类别提供了几种方便的预定义尺寸。
      @interface UIFont (UIFontSystemFonts)
       + (CGFloat)labelFontSize;
       + (CGFloat)buttonFontSize;
       + (CGFloat)smallSystemFontSize;
       + (CGFloat)systemFontSize;
      @end 
      

      我将它用于聊天消息(标签),当我需要获取文本块的大小时它工作得很好。

       [UIFont systemFontOfSize:[UIFont labelFontSize]];
      

      编码愉快!

      【讨论】:

        【解决方案8】:
        UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];
        

        这将为您提供系统字体,默认系统字体大小适用于标签文本。

        【讨论】:

          【解决方案9】:

          斯威夫特

          特定字体

          在 Swift 中设置特定字体是这样完成的:

          let myFont = UIFont(name: "Helvetica", size: 17)
          

          如果您不知道名称,您可以像这样获取可用字体名称的列表:

          print(UIFont.familyNames())
          

          或者像这样的更详细的列表:

          for familyName in UIFont.familyNames() {
              print(UIFont.fontNamesForFamilyName(familyName))
          }
          

          但是系统字体会随着 iOS 版本的不同而变化。所以最好动态获取系统字体。

          系统字体

          let myFont = UIFont.systemFontOfSize(17)
          

          但是我们已经硬编码了大小。如果用户的眼睛不好,他们想让字体变大怎么办?当然,您可以在您的应用程序中为用户进行设置以更改字体大小,但如果用户必须为手机上的每个应用程序单独执行此操作,这将很烦人。只需在常规设置中进行一项更改会更容易...

          动态字体

          let myFont = UIFont.preferredFont(forTextStyle: .body)
          

          啊,现在我们已经有了用户为我们正在使用的Text Style 选择的大小的系统字体。这是设置字体的推荐方式。有关这方面的更多信息,请参阅Supporting Dynamic Type

          相关

          【讨论】:

            【解决方案10】:

            斯威夫特

            您应该始终使用系统默认值,而不是对字体名称进行硬编码,因为 Apple 可以随时更改默认字体。

            有几种不同大小的系统默认字体(普通、粗体斜体)(标签、按钮、其他):

            let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
            let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize)
            let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)
            

            注意默认字体大小取决于目标视图(标签、按钮等)

            例子:

            let labelFont = UIFont.systemFont(ofSize: UIFont.labelFontSize)
            let buttonFont = UIFont.systemFont(ofSize: UIFont.buttonFontSize)
            let textFieldFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)
            

            【讨论】:

              【解决方案11】:
              1. 下载所需的 .ttf 文件

              2. 在复制捆绑资源下添加.ttf文件,仔细检查是否 ttf文件在resource下添加

              3. 在 info.pllist 中按原样添加 ttf 文件名。

              4. 现在打开字体册在字体册中添加 .ttf 文件,选择 信息图标在那里你可以找到后记名称。

              5. 现在用 postscript 名称代替字体名称

              【讨论】:

                【解决方案12】:

                iOS 的默认字体是 San Francisco 。您可以参考link了解更多详情

                【讨论】:

                  猜你喜欢
                  • 2011-05-07
                  • 1970-01-01
                  • 2021-05-14
                  • 2011-03-06
                  • 2019-07-15
                  • 2018-07-30
                  • 2014-10-06
                  • 1970-01-01
                  • 2015-10-17
                  相关资源
                  最近更新 更多