iPhone系统字体
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型号使用芝加哥,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 。
如果您正在进行程序化定制,请不要硬编码系统字体。 使用UIFont systemFontOfSize:
, UIFont boldSystemFontOfSize:
和UIFont italicSystemFontOfSize
( Apple文档 )。
从iOS 7开始,这已经变得特别重要,它将系统字体改为Helvetica Neue。
从iOS9开始,这已经成为超级特别相关的,它将系统字体再次改为旧金山。
afaik iPhone默认使用“ Helvetica ”<iOS 10
你可以随时使用
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
迅速
特定的字体
在Swift中设置特定的字体是这样做的:
let myFont = UIFont(name: "Helvetica", size: 17)
如果你不知道名字,你可以得到这样的可用字体名称列表:
print(UIFont.familyNames())
或者更像这样的更详细的列表:
for familyName in UIFont.familyNames() { print(UIFont.fontNamesForFamilyName(familyName)) }
但系统字体从iOS的版本变化到版本。 所以最好是dynamic获取系统字体。
系统字体
let myFont = UIFont.systemFontOfSize(17)
但是我们的尺寸是硬编码的。如果用户的眼睛不好,他们想要使字体更大? 当然,你可以在你的应用程序中为用户设置更改字体大小的设置,但是如果用户必须单独为他们的手机上的每个应用程序执行此操作,这将是恼人的。 在一般设置中做一个更改会更容易
dynamic字体
let myFont = UIFont.preferredFontForTextStyle(UIFontTextStyleBody)
啊,现在我们使用用户所选大小的系统字体来处理我们正在使用的文本样式 。 这是设置字体的推荐方法。 有关详细信息,请参阅支持dynamictypes 。
有关
- iOS字体的可视列表
- 如何使用Swift创build一个属性string?
我不知道有一个API来获取默认的系统字体名称。 所以我只是得到这样的名字:
//get system default font UILabel *label = [[UILabel alloc] init]; fontname = label.font.fontName; [label release];
看起来愚蠢,但它的作品。
这里是一些支持iOS 7的更新。 它现在有Dynamic Font Size
。
对于支持“dynamictypes”的任何和所有应用程序,用户可以在系统范围内的iOS 7中select字体大小,只需访问“设置”下的“常规”部分并select“字体大小”即可。
UIFont *dynamicFont = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
和常量列表, 详细的解释在这里
NSString *const UIFontTextStyleHeadline; NSString *const UIFontTextStyleSubheadline; NSString *const UIFontTextStyleBody; NSString *const UIFontTextStyleFootnote; NSString *const UIFontTextStyleCaption1; NSString *const UIFontTextStyleCaption2;
UIFont的类别UIFontSystemFonts ( UIInterface.h )提供了几个方便的预定义大小。
@interface UIFont (UIFontSystemFonts) + (CGFloat)labelFontSize; + (CGFloat)buttonFontSize; + (CGFloat)smallSystemFontSize; + (CGFloat)systemFontSize; @end
我用它来聊天消息(标签),当我需要获得文本块的大小时,它工作得很好。
[UIFont systemFontOfSize:[UIFont labelFontSize]];
快乐的编码!
UIFont *systemFont = [UIFont systemFontOfSize:[UIFont systemFontSize]];
这将默认为系统字体提供应用于标签文本的默认系统字体大小。
迅速
您应该始终使用系统默认值,而不是硬编码字体名称,因为Apple可以随时更改默认字体。
有几个系统默认的字体(正常, 粗体 , 斜体 )与不同的大小(标签,button,其他):
let font = UIFont.systemFont(ofSize: UIFont.systemFontSize) let font2 = UIFont.boldSystemFont(ofSize: UIFont.systemFontSize) let font3 = UIFont.italicSystemFont(ofSize: UIFont.systemFontSize)
请注意,默认字体大小取决于目标视图(标签,button等)
例子:
let labelFont = UIFont.systemFont(ofSize: UIFont.labelFontSize) let buttonFont = UIFont.systemFont(ofSize: UIFont.buttonFontSize) let textFieldFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)