iOS 自定义字体不显示

前段时间的开发中遇到了一个十分奇葩的问题,在 APP 的某个页面需要设置 楷体_GB2312 字体时,APP 显示出来的却是系统默认的苹方字体,设置字体的代码如下:

UILabel *label = [[UILabel alloc]init];

 label.font = [UIFont fontWithName:@"KaiTi_GB2312" size:12];

检查过字体 .ttf 文件导入正确,试过数个字体文件,包括在工程的Info.plist文件中添加的 Fonts provided by application 等均操作无误,字体依然显示系统默认字体.

在遍历查询字体名称时,发现字体库中并没有"KaiTi_GB2312"这一字体名.也就是说虽然添加了字体文件,设置了Info.plist, 字体却没有被添加进字体库中.但是在 .xib 文件中却可以选择使用该字体并能正常显示.

先说解决方法:

在项目中新建一个 .xib 文件,在 .xib 文件中使用自定义字体,并确保在编译时该 .xib 文件被编译,然后自定义字体就能够正常显示啦!

问题分析:

这个问题困扰了博主长达半个月之久,在求助于各路技术大牛,并经过多次试验后,博主斗胆对该问题进行如下分析:

可能是由于苹果公司为了提升编译效率,或出于支持 xib 技术等原因,在工程中无 xib 文件被编译时, xib 文件中的字体不被添加进字体库中.而 xib  文件被编译后, xib 文件中的字体才会被添加进字体库中.

由于该问题有很强的迷惑性,博主在重现该问题时也经历了多次失败,首先要确保项目中没有任何被编译的 .xib 文件,其次字体要正确添加无误.

博主把踩过的坑写出来,就算不知道为啥这里会有坑,但至少告诉大家跳出这个坑的方法.

祝各位工作顺利,天下无坑.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近遇到一个很奇怪的问题,自定义字体不显示,具体的操作步骤就不在赘述,通过 [UIFont familyNames...
    Lin__Chuan阅读 1,241评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,065评论 25 708
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,522评论 9 467
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 今天在知乎上看了学霸猫专栏里更新的两篇文章,“送你10句话,建立坚定不移的工作观” 和“我来这个世界上干活,用不着...
    怡方阅读 461评论 0 3