1、網上提供的字型庫有很多,下載下傳完成後,将其導入工程中,一般為ttf格式。
2、注意build phases中的copy bundle resources中是否導入了檔案:
3、在項目的info.plist檔案中添加字型鍵值如下:
這個數組中可以添加多個元素,多個字型庫。
4、這時實際上我們已經将字型添加進了工程中,但是在在使用這個字型時,字型的名字有時和檔案名是不一樣的,我們需要知道真實的字型名稱,通常情況下,我們會講所有字型名稱列印出來:
<a href="http://my.oschina.net/u/2340880/blog/515090#">?</a>
1
2
3
4
5
<code> </code><code>for</code> <code>(nsstring * name in [uifont familynames]) {</code>
<code> </code><code>for</code> <code>(nsstring * fo in [uifont fontnamesforfamilyname:name]) {</code>
<code> </code><code>nslog(@</code><code>"%@"</code><code>,fo);</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
5、找到我們需要的字型,如下使用即可:
<code> </code><code>uifont * font = [uifont fontwithname:@</code><code>"yuweij"</code> <code>size:14];</code>
如果你将所有字型都列印了出來,在其中找到新的字型名稱是身份困難的,尤其是當這個字型的名稱和檔案名相差甚遠的時候,這是一件非常痛苦的事情。
為了在以後使用自定義字型的時候不必一次一次的經曆這樣的痛苦,在xcode6.3的環境下,我将所有的系統字型擷取後寫入了plist檔案,将這個plist檔案導入項目中,通過如下方法,可以隻列印出新增加的字型:
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<code> </code><code>nsstring *paths=[[nsbundle mainbundle]pathforresource:@</code><code>"font"</code> <code>oftype:@</code><code>"plist"</code><code>];</code>
<code> </code><code>//得到完整的檔案名</code>
<code> </code><code>nsdictionary * rootdic = [nsdictionary dictionarywithcontentsoffile:paths];</code>
<code> </code><code>//周遊目前所有字型</code>
<code> </code><code>nsarray * fontarray = [rootdic objectforkey:name];</code>
<code> </code><code>bool</code> <code>tip = no;</code>
<code> </code><code>for</code> <code>(nsstring * tmp in fontarray) {</code>
<code> </code><code>if</code> <code>([tmp isequaltostring:fo]) {</code>
<code> </code><code>tip=yes;</code>
<code> </code><code>break</code><code>;</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>if</code> <code>(!tip) {</code>
<code> </code><code>nslog(@</code><code>"%@"</code><code>,fo);</code>