2016-06-23 14 views
0

我在我的iOS項目中包含了幾個Google字體ttf文件作爲自定義字體。一切正常,我可以使用很好的字體。但是,我需要區分自定義字體和iOS自動提供的字體。如何區分iOS中的自定義字體和「內置」字體?

我試圖通過比較與UIFont.FontNamesForFamilyName字體在Info.plist文件的文件名返回的文件名。雖然它適用於大多數字體,但文件名並不總是與字體名稱匹配;有些可能在其中有下劃線或破折號。由於我不能確切地依賴文件名,我還有其他選擇嗎?

回答

0

這是一個挑戰,它不是直接的,但絕對可行。

你需要的是知道哪些「字體名稱」出來的箱子,其中一個沒有。

爲了找到這是我將如何做到這一點。創建一個虛擬品牌新的示例項目。在AppDelegate.m文件中添加這個

// Get All fonts 
NSArray *fontFamilies = [UIFont familyNames]; 

for (int i=0; i<[fontFamilies count]; i++) 
{ 
    NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]); 
} 

這會給你默認iOS安裝的所有字體的名稱。您可以將該信息存儲在doc目錄中的plist文件中。

現在在您的自定義項目中運行相同的命令。它會給你你的iOS &你自己的自定義字體。再次將該信息存儲在您的doc目錄中的不同plist文件中。

現在你需要做的是在一個項目中同時獲得這些的plist文件,閱讀他們每個人到一個數組和比較的數組。這會給你你已經添加的哪些字體以及哪些字體是開箱即用的。

+0

我曾考慮過這個問題,但是我可以依靠設備和iOS版本嗎?無法更改列表嗎? – gonzobrains

+0

好問題,我認爲列表永遠不會改變。我的意思是,與iOS 9捆綁在一起的字體無論是iPhone還是iPad,都是一樣的,說過我沒有用iPad試過。對於iOS8 Vs iOS 9,這個列表肯定會有所不同 –