为了使自己的设备UI看起来更合口味,越狱党里还有一批主题党,字体党。iOS 7对字体的变动比较大,字库不完整导致修改出来的字体在各类软件中闪退的情况时有发生。本文介绍一个速成的方法,可以稍稍缓解这一情况的发生。
一、预备
1、查阅iOS 7字体替换有关知识。
字体文件在设备上的路径:/System/Library/Fonts/Cache(如iFunBox或iFile无法显示路径,请安装afc2add)
iOS 7 中文字体主要包括:
“STHeiti-Medium.ttc”、“STHeiti-Light.ttc”
“STHeiti-Thin.ttc”、“STHeiti-UltraLight.ttc”
(前两个在iOS 6时代就有了,不过iOS 6时代每个ttc中包括4个字体,iOS7则包含了10个,7.1是11个;后两个是iOS7新增的细体)。
英文字体就不介绍了。
替换的方法就是把上述目录中的上述文件替换成自己制作的字体文件。
2、软件
①iFunbox等备份替换字体文件的管理软件。
②AiFont :解包,打包ttc字体。
下载地址:http://www.joyiphone.net/AiFont/Index.aspx
③FontForge:ttf字体修改。
下载地址:http://www.geocities.jp/meir000/fontforge/ (可能需要翻墙)
3、字体
搜索并下载一个网友分享的不闪退的ttc字体文件;自己想要使用的字体ttf(或者ttc),这里姑且命名为font1.ttf文件。
二、思路
总体思路:闪退的原因是由于我们使用的字库内缺少文字,那么用我们自己使用的字体中的文字替换掉一个不闪退的字体文件中对应的文字,应该就可以“合成”一个既不闪退又在大部分时候显示自己喜欢的字体的字库了。
三、操作步骤
1、用AiFont提取网上下载的不闪退字体的ttf。
选择待转换字体后 点击 拆分ttc字体 中的 “提取单个.ttf 字体” 保存命名为“font.ttf”待用。
2、运行fontforge目录下的fontforge.bat
在弹出的对话框中找到自己想要修正的字体文件font1.ttf,然后再在菜单“文件”中选择“打开”命令 打开font.ttf。
两个文件打开以后,需要将他们的字体大小调整一致,以免最终合成的字体大小不一。点击“基础”菜单中的“字体信息”
在弹出的的字体信息对话框中找到“一般”页,将两种字体的大小调成一样。(只需调整“M全字大小”的数值即可)
确定后,将经历一个漫长的等待。选择自己的字体“font1.ttf”所在窗口,进入“基础”菜单,点击“合并字体”命令
确定,点根烟等着,基本OK了。(吸烟有害健康,未成年人请勿模仿。)
合并结束后,可以预览到字体中出现了一些奇怪的东西。点击“文件”-“生成字体”,保存成ttf文件。
最后使用AiFont的字体转换功能,将生成的ttf字体转为light、 medium,当然如果有必要的话,thin和ultralight也一并转了吧。
最后就是替换了,替换方法即是将所修改好的字体替换到前文提到的字体文件路径。
回答问题:
1、为什么不用系统原生字体打底?
因为我失败了,好像原生的字太多了,我每次合成都内存溢出。如果有成功的同学,感谢您的分享。
2、能确保不闪退吗?
目前iOS7自定义字体几乎无法避免闪退困扰,只能力求无法强求。
相关文章:
1、[分享] iOS7 字體修改:HiraSansGB+儷黑 ( 正常版 ) via@hdlulu