標籤:ios font
蘋果對於開發,確實在細節方面下了很大的功夫,不過無論一個平台下多大的功夫,仍然會有些需求是無法涵蓋的,比如字型吧。我們的應用為了能更加個人化,會需要不同的字型,有時候有些字型是非常特殊的,甚至是購買的,那麼這些字型如何加到項目中去呢?
字型有相應的字型檔,一般是以ttf或者otf為尾碼,我們可以去一些第三方網站去下載(也有人專門做了字型出售),Google Fonts是個比較好的網站,可以去找找看。我們就用Open Sans這個字型來做例子吧。首先當然是去下載字型檔,下載後發現是10個ttf檔案,沒錯,這是一個系列的字型,有粗體,有斜體,還有不同的大小,方便使用者在不同的情境下使用。
在準備好了字型檔檔案後,就可以加到項目中了,是把ttf檔案加入到項目中,這裡需要注意的是要把這些ttf加入到bundle中,也就是說,最後的ipa檔案中必須包含有這些ttf(否則應用中到哪裡去找字型檔呢?)
在加入後,我們可以分別在FileExplore和Build Phase裡面看到這些內容,如所示:
設定到這裡還有最後一步,就是在info.plist檔案中加入相應資訊,這一步實際上實在項目的Info頁裡面增加Fonts provided by application項,並設定相應的ttf檔案進去,這樣就告訴了應用,我要加入新的字型了,對應的字型檔是哪些。
到這裡,字型檔檔案應該是準備好了,下面我們需要確認一下字型檔的名字,因為代碼中需要用名字來指定字型。通常來說,這個名字和檔案名稱是相同的,但也有不同的時候,所以這一步一定不要忽略。
字型檔的名字這裡是通過NSLog這個列印語句來獲得,我們看一下代碼:
for (NSString *fontFamilyName in [UIFont familyNames]) { NSLog(@"--- %@ ---", fontFamilyName); for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) { NSLog(@" %@", fontName); } NSLog(@" "); }
這段代碼我們逐個讀入字型族的名字,然後每個族中讀取每種字型的名字。從代碼中我們可以知道,實際上我們列印了所有的字型,全部列出實在太長了,所以截了一部分列出來,我們的Open Sans也在其中。
我們看一下,裡面有些字型名字和檔案名稱相同,如OpenSans-Bold;有些字型名字和檔案名稱不同,如OpenSansLight-Italic。至此,準備工作終於全部完成了。
準備工作相當的繁瑣,每一步都不能省,但下面正式使用就非常簡單了,我做了三個label,分別放入了三種字型,為了向大師致敬,都顯示Hello World!的字樣。
代碼是這樣的:
self.label1.font = [UIFont fontWithName:@"OpenSans-Bold" size:20.0]; self.label1.text = @"Hello World!"; self.label2.font = [UIFont fontWithName:@"OpenSans-BoldITalic" size:20.0]; self.label2.text = @"Hello World!"; self.label3.font = [UIFont fontWithName:@"OpenSans-Light" size:20.0]; self.label3.text = @"Hello World!";
效果是這樣的:
這樣,我們就在應用中完美的加入了自訂字型檔,應用會顯得更加的個人化,讓人眼前一亮,脫穎而出!
iOS中如何添加自訂的字型