假设你想要在UIFont中使用特定的字体,那么你如何知道它被称为什么名称?
例如,如果你想要使用以下代码:
[someUILabelObject setFont:[UIFont fontWithName:@"American Typewriter" size:18]];
你是从哪里复制了精确的短语“American Typewriter”?在Xcode中是否有头文件?
更新
还发现这个很方便。
以下内容可能对您作为调试器中的快速解决方案很有用:
(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
)
2018年11月 - 更新 Chris Ching的"使用Xcode自定义字体"新教程发布,这是一个很有价值的帖子,介绍了使用自定义字体的新方法和所有缺失部分。
UIFont的文档对此非常明确:
您可以使用
fontNamesForFamilyName:
方法检索给定字体系列的特定字体名称。(注意:这是一个类方法)
您可以按如下方式获取字体系列名称:
NSArray *familyNames = [UIFont familyNames];
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];
尝试
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);
}];
}];
Font
枚举,并且该库还详细介绍了如何在自定义字体中使用它。基本上是这样的:let font = UIFont(name: "Arial-BoldItalicMT", size: 12.0)
let font = UIFont(font: .arialBoldItalicMT, size: 12.0)
let myFont = Font.helvetica.of(size: 12.0)
NSArray *fontFamilies = [UIFont familyNames];
for (int i=0; i<[fontFamilies count]; i++)
{
NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
}