iPhone系统字体

Posted

技术标签:

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

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

我想检索它以自定义 UIView

【问题讨论】:

【参考方案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

【讨论】:

在 iOS 9 上的 Swift 中,我得到 .SFUIText-RegularsystemFont.familyName @simpleBob 更多信息:designforhackers.com/blog/apples-new-san-francisco-font【参考方案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。

相关

Visual List of iOS Fonts How do I make an attributed string using Swift?

【讨论】:

【参考方案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】:

    下载所需的 .ttf 文件

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

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

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

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

【讨论】:

【参考方案12】:

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

【讨论】:

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

更改 iPhone 应用程序的系统字体 - 整个应用程序

修改iPhone字体,不越狱3分钟搞定

iOS12是啥字体

ios系统判断某些适配 __IPHONE_OS_VERSION_MAX_ALLOWED

苹果手机ios 9系统怎么设置字体大小

使用 iPhone 上没有的字体