问题描述
|
我想在运行时检查设备(iphone / ipad)上是否存在字体?
有没有办法做到这一点?
解决方法
您可以使用以下代码来获取所有可用字体的列表:
// List all fonts on iPhone
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily,indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
{
NSLog(@\"Family name: %@\",[familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; ++indFont)
{
NSLog(@\" Font name: %@\",[fontNames objectAtIndex:indFont]);
}
[fontNames release];
}
[familyNames release];
根据此代码,您可以轻松地使用所有字体名称构建一个NSArray,然后使用它来验证您的字体是否存在,或者哪种工作流程更适合您的应用。
资源
, 您可以尝试使用UIFont
fontWithName方法,我认为它应该返回nil表示iOS中不存在的字体。
+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize