iOS中怎样加入自己定义的字体

      苹果对于开发,确实在细节方面下了非常大的功夫,只是不管一个平台下多大的功夫,仍然会有些需求是无法涵盖的。比方字体吧。

我们的应用为了能更加个性化。会须要不同的字体。有时候有些字体是非常特殊的。甚至是购买的。那么这些字体怎样加到项目中去呢?

      字体有对应的字体文件。通常是以ttf或者otf为后缀,我们能够去一些第三方站点去下载(也有人专门做了字体出售),Google Fonts是个比較好的站点,能够去找找看。我们就用Open Sans这个字体来做样例吧。

首先当然是去下载字体文件,下载后发现是10个ttf文件,没错,这是一个系列的字体,有粗体,有斜体。还有不同的大小,方便用户在不同的场景下使用。

      

          


      在准备好了字库文件后,就能够加到项目中了,是把ttf文件增加到项目中,这里须要注意的是要把这些ttf增加到bundle中。也就是说,最后的ipa文件里必须包括有这些ttf(否则应用中到哪里去找字库呢?)

      

      在增加后,我们能够分别在FileExplore和Build Phase里面看到这些内容,例如以下图所看到的:

      

      设置到这里还有最后一步。就是在info.plist文件里增加对应信息,这一步实际上实在项目的Info页里面增加Fonts provided by application项,并设置对应的ttf文件进去,这样就告诉了应用,我要增加新的字体了,对应的字体文件是哪些。

      

      到这里,字库文件应该是准备好了,以下我们须要确认一下字库的名字,由于代码中须要用名字来指定字体。通常来说。这个名字和文件名称是同样的,但也有不同的时候。所以这一步一定不要忽略。

      字库的名字这里是通过NSLog这个打印语句来获得,我们看一下代码:

      

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

      这段代码我们逐个读入字体族的名字,然后每一个族中读取每种字体的名字。

从代码中我们能够知道。实际上我们打印了所有的字体。所有列出实在太长了,所以截了一部分列出来。我们的Open Sans也在当中。

      

      我们看一下,里面有些字体名字和文件名称同样,如OpenSans-Bold;有些字体名字和文件名称不同,如OpenSansLight-Italic。

至此,准备工作最终所有完毕了。

      准备工作相当的繁琐,每一步都不能省,但以下正式使用就很easy了,我做了三个label,分别放入了三种字体,为了向大师致敬。都显示Hello World!的字样。

      代码是这种:

      

    self.label1.font = [UIFont fontWithName:@"OpenSans-Bold" size:20.0];
    self.label1.text = @"Hello World!";
    self.label2.font = [UIFont fontWithName:@"OpenSans-BoldITalic" size:20.0];
    self.label2.text = @"Hello World!";
    self.label3.font = [UIFont fontWithName:@"OpenSans-Light" size:20.0];
    self.label3.text = @"Hello World!";

      效果是这种:

      

      这样,我们就在应用中完美的增加了自己定义字库。应用会显得更加的个性化。让人眼前一亮,脱颖而出!


原文地址:https://www.cnblogs.com/lcchuguo/p/5183820.html