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-Regular
为 systemFont.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系统字体的主要内容,如果未能解决你的问题,请参考以下文章