iPhone 上默认系统字体的名称是什么?
我想检索它以自定义UIView
.
令世界各地的字体纯粹主义者高兴的是,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-design-iphone-font-used-iphone-ringtones.html
对于iOS9,它已更改为San Fransisco。有关详细信息,请参阅http://developer.apple.com/fonts。
如果您正在进行程序化定制,请不要对系统字体进行硬编码。使用UIFont systemFontOfSize:
,UIFont boldSystemFontOfSize:
和UIFont italicSystemFontOfSize
(Apple 文档)。
自 iOS 7 将系统字体更改为 Helvetica Neue 以来,这一点变得尤为重要。
自从 iOS 9 将系统字体再次更改为 San Francisco以来,这一点变得尤为重要。
afaik iPhone 默认使用“ Helvetica ”< iOS 10
特定字体
在 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)
啊,现在我们有了用户为我们正在使用的文本样式选择的大小的系统字体。这是设置字体的推荐方式。有关这方面的更多信息,请参阅支持动态类型。
您可以随时使用
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
我不确定是否有获取默认系统字体名称的 api。所以我只是得到这样的名字:
//get system default font
UILabel *label = [[UILabel alloc] init];
fontname = label.font.fontName;
[label release];
看起来很愚蠢,但它确实有效。
这是支持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;
UIFont ( UIInterface.h ) 的类别UIFontSystemFonts提供了几个方便的预定义大小。
@interface UIFont (UIFontSystemFonts)
+ (CGFloat)labelFontSize;
+ (CGFloat)buttonFontSize;
+ (CGFloat)smallSystemFontSize;
+ (CGFloat)systemFontSize;
@end
我将它用于聊天消息(标签),当我需要获取文本块的大小时它工作得很好。
[UIFont systemFontOfSize:[UIFont labelFontSize]];
快乐编码!
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];
这将为您提供具有默认系统字体大小的系统字体,默认情况下应用于标签文本。
迅速
您应该始终使用系统默认值,而不是对字体名称进行硬编码,因为 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)
下载所需的 .ttf 文件
在复制捆绑资源下添加.ttf文件,仔细检查ttf文件是否在资源下添加
在 info.pllist 中按原样添加 ttf 文件名。
现在打开字体册在字体册中添加 .ttf 文件,选择信息图标在那里你可以找到 postscript 名称。
现在用 postscript 名称代替字体名称
iOS 的默认字体是 San Francisco 。您可以参考链接了解更多详情