当我们需要加入自定义的字体的时候经常会读不到字体在程序中的正确名称,这就需要在系统中拿到这个字体的名称。
//第一步 存储系统字体 把存储在沙盒的文件拿出来
NSError *err = nil;
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirec = [paths objectAtIndex:0];
NSString* filePath=[documentsDirec stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt",@"fontfile"]];
NSArray *arr = [UIFont familyNames];
NSString *str = [arr description];
if ([str writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&err])
{
NSLog(@"writeToFile:yes");
}
//第二步 读取添加自定义字体后的字体 查找不同
NSString *strnow = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"fontfile" ofType:@"txt"] encoding:NSUTF8StringEncoding error:&err];
NSArray *arrnow = [UIFont familyNames];
for (NSString *fontname in arrnow)
{
if ([strnow rangeOfString:fontname].location == NSNotFound) {
NSArray *arrresult = [UIFont fontNamesForFamilyName:fontname];
NSLog(@"%@,%@",fontname,arrresult);
}
}