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

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

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

1、网上提供的字体库有很多,下载完成后,将其导入工程中,一般为ttf格式。

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

100447_fprW_2340880.png

3、在项目的info.plist文件中添加字体键值如下:

101922_EqLJ_2340880.png

这个数组中可以添加多个元素,多个字体库。

4、这时实际上我们已经将字体添加进了工程中,但是在在使用这个字体时,字体的名字有时和文件名是不一样的,我们需要知道真实的字体名称,通常情况下,我们会讲所有字体名称打印出来:

?
1
2
3
4
5
     for  (NSString * name in [UIFont familyNames]) {
         for  (NSString * fo in [UIFont fontNamesForFamilyName:name]) {
            NSLog(@ "%@" ,fo);
         }
     }

5、找到我们需要的字体,如下使用即可:

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

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

        如果你将所有字体都打印了出来,在其中找到新的字体名称是身份困难的,尤其是当这个字体的名称和文件名相差甚远的时候,这是一件非常痛苦的事情。

        为了在以后使用自定义字体的时候不必一次一次的经历这样的痛苦,在Xcode6.3的环境下,我将所有的系统字体获取后写入了plist文件,将这个plist文件导入项目中,通过如下方法,可以只打印出新增加的字体:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
     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/BaseSouce


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值