iPhone系统字体


98

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

我想检索此内容以自定义UIView

Answers:


109

为了使各地的字体纯粹主义者满意,iPhone系统界面使用Helvetica或其变体。

最初的iPhone,iPhone 3G和iPhone 3GS系统界面使用Helvetica。正如始终出色的DaringFireball最初指出的那样,iPhone 4使用了经过微妙修改的字体“ Helvetica Neue”。DaringFireball还指出,此更改与iPhone 4显示屏有关,而不是与iOS 4操作系统有关,并且运行iOS 4的旧iPhone型号仍使用Helvetica作为系统字体。

在iPhone之前发行的iPod机型使用Chicago,Espy Sans或Myriad,并在iPhone发行后使用Helvetica。

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

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


6
当前是Helvetica Neue Regular字体。
2013年

4
对于iOS9,它已更改为San Fransisco。有关更多信息,请参见developer.apple.com/fonts
Freek Sanders

103

如果要进行程序化定制,请不要对系统字体进行硬编码。使用UIFont systemFontOfSize:UIFont boldSystemFontOfSize:UIFont italicSystemFontOfSize苹果文件)。

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

这已经成为超级以来的iOS 9,它改变了系统字体特别是有关再次到旧金山。


1
我不会更改系统字体,这是个坏主意。但是我想要UIWebView中的一些html。
SK9

这不会更改系统字体-只是UIFont使用给定的大小为您提供系统字体的实例,并且无论将来是否进行iOS更新,都将始终返回系统字体。
亚当·赖特

我在UIWebView中看到的字体对我来说看起来并不像Helvetica。我可能错了,但为视图设置字体消除了我的怀疑。
SK9

根据情况,“不要对系统字体进行硬编码”是个好建议,或者真的是个坏建议。就个人而言,我希望我已经进行了硬编码Helvetica
Dan Rosenstark

完全同意,请不要硬编码。这应该是这个问题的正确答案
Esteve


12

迅速

特定字体

在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)

啊,现在我们已经在用户所选大小的系统字体文本样式,我们正在处理。这是设置字体的推荐方法。有关更多信息,请参见支持动态类型

有关


11

您可以随时使用

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


1
在iOS 9上的Swift中,我的.SFUIText-Regular身份是systemFont.familyName
丹尼尔(Daniel)

@simpleBob有关此内容的更多信息:designforhackers.com/blog/apples-new-san-francisco-font
Dan Rosenstark

8

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

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

看起来很蠢,但是行得通。


17
UIFont * font = [UIFont systemFontOfSize:12.0]; <!-获取默认字体
Steven Baughman 2012年

有更简单的方法。但是,开箱即用的思维是+1
Krishnabhadra

看起来更好:P [UIFont systemFontOfSize:[UIFont labelFontSize]];请参阅下面的答案。
Anton Gaenko

3

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

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

UIFont *dynamicFont  = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];

和常量列表,详细说明在这里

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

3

分类UIFontSystemFontsUIFontUIInterface.h)提供了一些便利的预定义的大小。

@interface UIFont (UIFontSystemFonts)
 + (CGFloat)labelFontSize;
 + (CGFloat)buttonFontSize;
 + (CGFloat)smallSystemFontSize;
 + (CGFloat)systemFontSize;
@end 

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

 [UIFont systemFontOfSize:[UIFont labelFontSize]];

编码愉快!


3
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];

这将为您提供系统字体,默认情况下为标签文本应用默认的系统字体大小。


2

迅速

您应该始终使用系统默认值,而不要对字体名称进行硬编码,因为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)

0
  1. 下载所需的.ttf文件

  2. 在副本捆绑资源下添加.ttf文件,再次检查是否在资源下添加了ttf文件

  3. 在info.pllist中直接添加ttf文件名。

  4. 现在打开字体书,将.ttf文件添加到字体书中,选择信息图标,在其中找到脚本名称。

  5. 现在在字体名称的位置输入后记名称


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.