杨叫兽的技术博客

关注Objective-C、iOS、Mac开发与技巧,重视代码的简洁与质量

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

开发过iOS应用的朋友都知道,iOS平台里的字体样式很多,其中的大多数都很美观。但是在这些字体中并没有中文字体,如果想用一些好看的中文字体(比如楷体、隶书等)该怎么做呢?

其实iOS是支持自定义字体的。首先我们可以通过以下代码查看iOS都内置了哪些字体。

Find All Fonts in iOS
1
2
3
4
5
6
7
8
NSArray *familyNames = [UIFont familyNames];
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]);
  }
}

从网上下载到自己想要的字体文件,比如:楷体_GB2312.ttf(.ttf和.odf均可)。将字体文件添加到项目中,并确保字体文件已加入工程的Copy Bundle Resources中:

同时要在工程的info.plist文件中添加一个名为”Fonts provided by application”的键,这个键的值是一个数组,将自定义字体文件的全名添加进去。

以上两步做完之后,还需要再执行一下之前提到的列举所有字体的代码,从打印的字体名称中找到自定义字体的名称。例如楷体_GB2312的字体名称为:KaiTi_GB2312。

现在就可以在项目中使用这个自定义字体了,例如将一个UILabel对象的字体设置为楷体_GB2312,代码如下:

1
self.KaitiLabel.font = [UIFont fontWithName:@"STKaiti" size:25];

最后,送给大家一个使用了娃娃体Label的效果图: