在iOS应用程序中使用自定义字体

翻译自:Using Custom fonts in your iOS application. 版权所有, 转载请著明出处,保留链接。

关于app中的自定义字体,可以在网上搜到几篇博文,但是可惜的是,没有一篇能帮助我完成自定义字体的,大多数博文,人云亦云,误人子弟。基于此,有必要介绍怎样在app中使用自定义字体。

首先,你必须意识到自定义字体是基于应用程序讲的,而不是基于iOS设备的,即你不能认为为iOS设备添加了一款字体,就认为为该iOS设备上的所有app都添加了该款字体,而是,你需要为ios设备上的每一个app都添加这款字体。

其次,在iOS应用程序中,包括UIWebView的应用程序,在使用自定义字体或者是QuickConnectFamily中的字体时,不需要写一行代码。

第三, 在应用程序中不需要调用@font-face CSS。

第四, 本文的示例会介绍两个自定义字体的添加和使用步骤。分别是Freshman字体和PF Handbook Pro Normal 字体,它们都可以以ttf文件的形式使用。

下面来介绍我们是怎么做的:

  1. 拖拽ttf文件到XCode工程中的资源组,并且勾选复制checkbox.

font1

  1. 在资源组中找到info.plist文件并打开.

font2

  1. 在任意属性上Control-click, 并选择New, 即添加新属性.
  2. 选择”fonts provided by application”属性名称.

font3

  1. 点击属性”fonts provided by application”左边的三角按钮,扩展开来;

font4

  1. 在值栏键入Freshman.ttf(在此输入字体名称);
  2. 在Freshman.ttf行上Control-click,以增加新行;
  3. 在值栏中输入PFHandbookProRegular.ttf(在此输入另一个字体的名称);

font5

  1. 在CSS中或者内置样式中直接使用字体;

font6
font7

希望这篇博文能在使用自定义字体上帮你扫除障碍。
翻译自:Using Custom fonts in your iOS application. 转载请著名出处,保留链接。

###如何在UILabel, UIButton等控件上应用自定义字体
1.首先info.plist中加入属性Fonts provided by application,在item 0 处填写导入的ttf文件名

2.查出你导入字体的font name

NSArray * fontArrays = [[NSArray alloc] initWithArray:[UIFont familyNames]];
for (NSString * temp in fontArrays) {
  NSLog(@"Font name  = %@", temp);
}
//这实际得到的是familynameArray,而不是fontArray,正确代码如下

NSArray *familyNames =[UIFont familyNames]; //得到所有的familyNames,每个familyname实际上包含一个或多个fontName

//遍历所有的familyName和它所属的fontname
for( NSString*familyName in familyNames ){
   printf("Family: %s \n", [familyName UTF8String]);
   NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
   for(NSString *fontName in fontNames){
       printf( "\tFont: %s \n", [fontName UTF8String] );
   }
}

3.然后利用字体名称使用字体

UILabel *tempTwoLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 40)];
UIFont *fontTwo = [UIFont fontWithName:@"DFPWaWaW5-GB" size:15];
[tempTwoLabel setFont:fontTwo];
[tempTwoLabel setText:@"这是新字体——ONe----->华康娃娃体"];
[self.view addSubview:tempTwoLabel]

以上内容未亲测,使用请慎重, 当然字库需要到网上下载,不知道有没有比较可信的字库下载地址。