iOS在应用中添加自定义字体

iOS在应用中添加自定义字体

1、在应用中添加自定义字体的步骤

一、网上提供的字体库有不少,下载完成后,将其导入工程中,通常为ttf格式。git

二、注意Build Phases中的Copy Bundle Resources中是否导入了文件:github

三、在项目的info.plist文件中添加字体键值以下:数组

这个数组中能够添加多个元素,多个字体库。字体

四、这时实际上咱们已经将字体添加进了工程中,可是在在使用这个字体时,字体的名字有时和文件名是不同的,咱们须要知道真实的字体名称,一般状况下,咱们会讲全部字体名称打印出来:ui

    for (NSString * name in [UIFont familyNames]) {
        for (NSString * fo in [UIFont fontNamesForFamilyName:name]) {
           NSLog(@"%@",fo);
        }
    }

 

五、找到咱们须要的字体,以下使用便可:spa

 UIFont * font = [UIFont fontWithName:@"yuweij" size:14];

 

2、如何快速的找到新添加的字体名字

        若是你将全部字体都打印了出来,在其中找到新的字体名称是身份困难的,尤为是当这个字体的名称和文件名相差甚远的时候,这是一件很是痛苦的事情。code

        为了在之后使用自定义字体的时候没必要一次一次的经历这样的痛苦,在Xcode6.3的环境下,我将全部的系统字体获取后写入了plist文件,将这个plist文件导入项目中,经过以下方法,能够只打印出新增长的字体:ip

    NSString *paths=[[NSBundle mainBundle]pathForResource:@"font" ofType:@"plist"];
    //获得完整的文件名
    NSDictionary * rootDic = [NSDictionary dictionaryWithContentsOfFile:paths];
    //遍历当前全部字体
    for (NSString * name in [UIFont familyNames]) {
        NSArray * fontArray = [rootDic objectForKey:name];
        BOOL tip = NO;
        for (NSString * fo in [UIFont fontNamesForFamilyName:name]) {
            for (NSString * tmp in fontArray) {
                if ([tmp isEqualToString:fo]) {
                    tip=YES;
                    break;
                }
            }
            if (!tip) {
                NSLog(@"%@",fo);
            }
        }
    }

 

若是你也须要,字体集plist文件的地址:https://github.com/ZYHshao/YHBaseFoundationTest/tree/master/YHBase/BaseSouceget

 

专一技术,热爱生活,交流技术,也作朋友。it

——珲少 QQ群:203317592

相关文章
相关标签/搜索