iOS系统家族字体(family font)
系统字体意味着可以不需要另外导入字体包就可以在项目中使用,而且不涉及商用版权问题。
1.系统家族字体
可通过以下代码在控制台打印出系统家族字体的个数和字体名称:
1 |
|
结果:
iOS family font count:75
iOS family font list:
—Copperplate—
—Heiti SC—
—Kohinoor Telugu—
—Thonburi—
—Heiti TC—
—Courier New—
—Gill Sans—
—Apple SD Gothic Neo—
—Marker Felt—
—Avenir Next Condensed—
—Tamil Sangam MN—
—Helvetica Neue—
—Gurmukhi MN—
—Times New Roman—
—Georgia—
—Apple Color Emoji—
—Arial Rounded MT Bold—
—Kailasa—
—Kohinoor Devanagari—
—Kohinoor Bangla—
—Chalkboard SE—
—Sinhala Sangam MN—
—PingFang TC—
—Gujarati Sangam MN—
—Damascus—
—Noteworthy—
—Geeza Pro—
—Avenir—
—Academy Engraved LET—
—Mishafi—
—Futura—
—Farah—
—Kannada Sangam MN—
—Arial Hebrew—
—Arial—
—Party LET—
—Chalkduster—
—Hoefler Text—
—Optima—
—Palatino—
—Lao Sangam MN—
—Malayalam Sangam MN—
—Al Nile—
—Bradley Hand—
—PingFang HK—
—Trebuchet MS—
—Helvetica—
—Courier—
—Cochin—
—Hiragino Mincho ProN—
—Devanagari Sangam MN—
—Oriya Sangam MN—
—Snell Roundhand—
—Zapf Dingbats—
—Bodoni 72—
—Verdana—
—American Typewriter—
—Avenir Next—
—Baskerville—
—Khmer Sangam MN—
—Didot—
—Savoye LET—
—Bodoni Ornaments—
—Symbol—
—Menlo—
—Bodoni 72 Smallcaps—
—Papyrus—
—Hiragino Sans—
—PingFang SC—
—Myanmar Sangam MN—
—Euphemia UCAS—
—Telugu Sangam MN—
—Bangla Sangam MN—
—Zapfino—
—Bodoni 72 Oldstyle—
2.family font的使用
可知,iOS可用的字体共有75种,加上默认系统字体San Francisco,有76种,基本能满足app开发的需求,这些系统提供的字体的使用只需要指定其font name即可。
然而,一些设计师在设计UI时常常使用一些第三方字体,这就需要区别处理。
第三方字体
- 必须考虑的问题
遇到需要使用第三字体的情况时,我们需要考虑两方面问题:
导入字体库会增大app占用空间(英文字体一般为几十到几百K,中文字体包大小可能达到十几兆);
第三方字体商用可能涉及商用版权问题(需购买商用版权)。
- 如何在项目中使用
先确认商用版权问题
再下载字体包
选择对应的TARGET
选择Build Phases
选择Compile Sources( xxx items ),点击加号添加字体库文件
在info.plist中添加key:”Founts provided by application”,在Value中输入对应第三方字体名称
在需要用到该第三方字体处用
[UIFont fontWithName:fontName size:fontSize];
引用对应字体
动态下载苹果官方提供字体
从iOS6开始,除了iOS系统提供的字体外,应用程序可以根据需要安装附加字体列表,可供开发者动态下载使用,这些字体只适用于实现下载支持的应用程序,字体以这种方式下载的应用程序没有永久安装,系统可能决定在某些使用场景下删除它们。
我们可以在Mac的Font Book应用中来查看这些附加字体的名称,下载时需要用到其PostScript名称,如下图所示:
苹果官方相关说明
1 |
|
根据官方代码,我们可以很容易地动态下载并在app中使用这些附加字体了。
如果不愿意看官方文档和Demo,现将主要代码总结如下:
异步下载附加字体:
1 |
|
使用系统提供的附加字体,既可以避免商用版权问题,又可以减小应用的体积,适用于多字体样式有要求的应用。
总结
在iOS开发中,我们可能会遇到一些奇怪的UI设计,其中用到好几种非系统库中存在字体,这时我们需要慎重考虑是否要无条件引入第三方字体包,其版权问题和占用空间问题都是十分严重的,需要进一步沟通并确定不存在上述两方面问题时再进行相关开发,否则作为开发者的我们来说会很被动。最后,提醒大家尽量不要使用太多第三方字体,系统提供的字体是用户熟悉了的,app的字体太多反而可能造成用户体验不好,慎之,慎之!!!