说明: 在iOS中, 系统的字体并不适用于中文, 也不一定是我们想要的. 此时, 我们可以通过向工程导入第三方字体文件(.ttf), 使用我们想要的字体样式.

字体文件和工程文件下载地址:

文章中尽量不使用或少使用封装, 目的是让大家清楚为了实现功能所需要的官方核心API是哪些(如果使用封装, 会在封装外面加以注释)

  • 此文章由 @春雨 编写. 经 @Scott,@黑子 审核. 若转载此文章,请注明出处和作者

iOS中第三方字体的导入和使用

核心API

Class : UIFont, UILable
涉及的API:(API的官方详细注释详见本章结尾)

/** 获取字体族名称的方法. */
+ (NSArray *)familyNames/** 获取字体家族内的具体字体名称. */
+ (NSArray *)fontNamesForFamilyName:(NSString *)familyName/** 用指定的字体名称和大小创建UIFont对象. */
+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize

功能实现

Code:

1 . 导入第三方字体文件到工程里.(字体文件链接在说明里.)

  • 首先将第三方字体文件拖入工程里(第三方字体文件名最好不要随意更改, 更改后文件可能会不起作用.);
  • 进入Suporting Files文件夹中的Info.plist文件.
  • 在Info.plist文件中添加一行, Key值选择Fonts provided by application(如果已经有这个数组, 可直接在里面添加)
  • 在数组中添加一行, Value为文件名称(例: manhua.ttf)

2 . 获取添加的第三方字体的名称.(字体家族名称不一定和文件名称相同, 所以有时我们需要自己查找第三方字体家族名称)

/** 1. 获取字体家族名称的数组. */
NSArray *otherFontNameArray = [UIFont familyNames];  /** 2. 打印输出所有字体家族的名称, 找到添加的第三方字体家族名称, 并记录下来. (我在工程里写了快速获取第三方字体家族名称的方法, 链接地址在说明中.)*/
NSLog(@"otherFontNameArray: %@", otherFontNameArray);

/** 3. 获取第三方字体家族内具体的字体名称.(例如粗体, 斜体等)*/
NSArray *fontNamesArray = [UIFont fontNamesForFamilyName:@"MComic HK"]; /**< 可以看出这个第三方字体家族名称和文件名称不相同. *//** 4. 打印具体的字体名称*/
NSLog(@"MComic HK: %@", fontNamesArray);

3 . 创建一个UILabel的对象, 展示字体样式.

/** 1. 创建UILable的对象. */
UILabel *showFontLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 170, 300, 200)];/** 2. 设置showFontLabel的font属性. */
showFontLabel.font = [UIFont fontWithName:@"MComicHK-Medium" size:30];  /**< *//** 3. 给showFontLabel的text属性赋值. */
showFontLabel.text = @"Our mind is sponge, our heart is a stream.我们的脑如海绵,        我们的心如溪流.";/** 4. 设置showFontLabel的行数限制. */
showFontLabel.numberOfLines = 4;/** 5. 添加到父视图上. */
[self.view addSubview:showFontLabel];/** 6. 程序是在MRC下运行, 所以要进行内存管理. */
[showFontLabel release];

  • iOS中第三方字体的导入和使用

    • 核心API
    • 功能实现
      • Code
  • API 官方注释

API 官方注释

/** * @brief  Returns an array of font family names available on the system * * @return  An array of NSString objects, each of which contains the name of a font family.*/+ (NSArray *)familyNames
/** * @brief  Returns an array of font names available in a particular font family.** @param  <familyName> The name of the font family. Use the familyNames method to get an array of the available font family names on the system.** @return   An array of NSString objects, each of which contains a font name associated with the specified family.*/+ (NSArray *)fontNamesForFamilyName:(NSString *)familyName/*** @brief   Creates and returns a font object for the specified font name and size.** @param   <fontName>  The fully specified name of the font. This name incorporates both the font family name and the specific style information for the font.** @param  <fontSize>  The size (in points) to which the font is scaled. This value must be greater than 0.0.* * @return  A font object of the specified name and size.*/+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize

iOS_第三方字体的导入和使用相关推荐

  1. win10 uwp 打包第三方字体到应用

    原文:win10 uwp 打包第三方字体到应用 有时候我们会把一些特殊字体打包到软件,因为如果找不到我们的字体会变为默认,现在很多字体图标我们用得好,有时候我们的应用会用很漂亮的字体,需要我们自己打包 ...

  2. iOS 添加第三方字体 .ttf

    iOS中如果要使用一些第三方字体(.ttf格式) 我们可以直接添加 具体方法如图 在info.plist 的information Propert List下添加 Fonts provided by ...

  3. Android 使用第三方字体

    先看下图 一.全局替换方式 1.新建assets引入资源 2.  自定义application,将第三方的字体,替换当前系统默认字体 class App : Application() {overri ...

  4. iOS 添加第三方字体库

    iOS 加载第三方字体库 | 浏览:2096 | 更新:2014-09-24 20:26 1 2 3 4 5 分步阅读 一键约师傅 百度师傅高质屏和好师傅,解救你的碎屏机 工具/原料 第三方字体库文件 ...

  5. element-ui中使用第三方字体

    element-ui中使用第三方字体 ​ 1.将素材fonts文件夹加到自己定义的放icon的文件夹中(assets)中,在入口文件main.js中导入 import './assets/fonts/ ...

  6. 红帽linux怎么装文件夹,红帽linux怎么安装第三方字体?

    许多用过 Windows 再去使用红帽 linux 的朋友一定会有这样的感受,就是红帽 linux 的字体相比之下实在是相形见绌.当然,要想红帽 linux 看起来更美观一些,最好的办法莫过于将自己喜 ...

  7. js加载第三方字体,检测加载完成事件

    最近在做一个项目涉及到加载第三方字体的问题,首批需要支持一百多种字体,然后首先想到的就是@fant-face,但是在实际应用中发现无法满足当前需求. 目前的项目是用canvas的一个开源库fabric ...

  8. 微信小程序 - 引入第三方字体(使用网络字体艺术字)

    前言 有时候因项目需求,可能需要一套第三方艺术字体,就像如图所示效果(店内自取 / 外卖): 实现 当然,也可以直接使用微信 API wx.loadFontFace ,具体请查看 官方示例文档. 引入 ...

  9. Qt 添加第三方字体库

    Qt字体库默认主持操作系统所有的字体库,但是设计师一般喜欢比如思源字体,但是咱们的操作系统没有安装,在其他没有安装第三方字体库的电脑上运行,就达不到设计师最初设计的观感.这篇博客介绍Qt如何第三方字体 ...

最新文章

  1. Syslog-ng+Rsyslog收集日志:logrotate日志切割、轮询(七)
  2. 题目1090:路径打印
  3. python leetcode 1
  4. 我的第一个Spring MVC程序
  5. java消息 框架_java 框架-消息队列ActiveMQ
  6. entity reference在views中的运用
  7. python小仙女_python——time库整理(基础知识+实例)
  8. 程序员幽默:年后上班综合症,你中了几招?!!
  9. c++ char*初始化_[零食时间]C/C++ 字符串全家桶(字符串表示/定义、字符串输入输出、易错点等)上半桶...
  10. 董小姐尴尬了?被判赔偿奥克斯1.67亿,格力回应已上诉
  11. 建立了索引怎么使用_对MySQL索引的认识
  12. python一次性输入多个数_python如何利用input函数输入多个参数?
  13. Apache配置SSL证书指引
  14. linux系统怎样挂载虚拟盘,linux 应用盘(从盘)挂载方法linux操作系统 -电脑资料...
  15. android 网络邻居,魅族Flyme系统中怎么设置网络邻居?
  16. 计算机系统维护课程设计报告,计算机系统维护工程(第2版)
  17. Mac 下配置使用windows局域网共享打印机
  18. unity退出,从新开始,暂停
  19. 盘古开源解析:芯片订单超过产能,2022汽车出现缺芯难题
  20. 企业发放奖金根据利润提成

热门文章

  1. 读取mat文件数据当中某一行或某一列
  2. 互联网现象背后心理学:为何“蠢萌”比“高冷”更容易火
  3. 计算机中内存是什么符号,内存条ddr是什么意思?内存中的ddr含义介绍
  4. Photoshop制作文字倒影
  5. 博士3年前被判定学术不端、失去工作!如今发Nature子刊证明自己是对的!
  6. 双非跨考985吉大软件专硕初试第一名428分,专业课147分经验贴
  7. 一个简单的音乐网站设计与实现(HTML+CSS)___音乐网站7页--界面设置简洁好看,带有登陆注册
  8. 梯度下降优化算法综述,梯度下降法 神经网络
  9. yy‘s图像人脸识别作业经历
  10. 运行中调试初计算机的命令,计算机二级 VB辅导:VB中程序的运行调试