UIFont fontWithName字体名称

假设您想要UIFont的特定字体。 你怎么知道它叫什么?

例如,如果你想使用这个代码:

[someUILabelObject setFont:[UIFont fontWithName:@"American Typewriter" size:18]]; 

从哪里复制精确的短语“美国打字机”。 Xcode中是否有头文件?

UPDATE

也发现这个得心应手。

debugging器中的Quick Win可能会让你感兴趣:

 (lldb) po [UIFont fontNamesForFamilyName:@"Helvetica Neue"] (id) $1 = 0x079d8670 <__NSCFArray 0x79d8670>( HelveticaNeue-Bold, HelveticaNeue-CondensedBlack, HelveticaNeue-Medium, HelveticaNeue, HelveticaNeue-Light, HelveticaNeue-CondensedBold, HelveticaNeue-LightItalic, HelveticaNeue-UltraLightItalic, HelveticaNeue-UltraLight, HelveticaNeue-BoldItalic, HelveticaNeue-Italic ) 

UIFont的文档非常清晰:

您可以使用fontNamesForFamilyName:方法来检索给定字体系列的特定字体名称。 ( 注意 :这是一个类的方法)

你可以得到像这样的姓氏:

 NSArray *familyNames = [UIFont familyNames]; 

尝试

 NSArray *familyNames = [UIFont familyNames]; [familyNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){ NSLog(@"* %@",obj); NSArray *fontNames = [UIFont fontNamesForFamilyName:obj]; [fontNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){ NSLog(@"--- %@",obj); }]; }]; 

这是如何获得您的项目中的所有字体名称。 就是这样… 3行代码

 NSArray *fontFamilies = [UIFont familyNames]; for (int i=0; i<[fontFamilies count]; i++) { NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]); } 
 label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17]; 

我做了一个库来解决这个问题:

https://github.com/Nirma/UIFontComplete

所有的字体都被表示为一个系统的Font enum,这个库还会详细介绍一种在读取我自己的自定义字体时使用它的方法。

基本上这个:

 let font = UIFont(name: "Arial-BoldItalicMT", size: 12.0) 

被replace为这个:

 let font = UIFont(font: .arialBoldItalicMT, size: 12.0) 

或这个:

 let myFont = Font.helvetica.of(size: 12.0)