2013-08-23 48 views
0

我在加載某些自定義字體時遇到問題。我遵循了傳統的,400 + upvoted回答這個問題的建議,它完美地爲一個項目工作。但是,在我正在處理的另一個項目中,我遇到了加載UIFont的問題。UIFont Woes(某些自定義字體正在加載,但其他字體未加載)

這些問題有點類似於在Adding multiple fonts to UIAppFonts overrides each other後發現的問題。那裏的解決方案是p-list存在問題,正確地將名稱解析爲XML,導致覆蓋。我已經試圖測試問題的這一假設:

我列出

下我對列表中的字體

UIAppFonts(它變成「由應用程序提供的字體」) 項目0 - Merriweather-Regular.ttf 項目1 - OpenSans-Regular.ttf 項目2 - OpenSans-Bold.ttf

其中最後一個(OpenSans-Bold)是唯一加載的。自那以後,我嘗試將這些物品移至無效。我甚至從p-list和這個項目中刪除了OpenSans-Bold.ttf並嘗試運行它。顯然他們不是「相互覆蓋」。所有的文件都被複制到我的捆綁副本中(另一個常見錯誤),並且仍然是唯一在我的任何視圖中註冊的文件是OpenSans-Bold。我已經刪除了所有內容並將其添加回來......基本上完成了所有傳統的「奇怪的XCode可能導致問題」的錯誤測試,它沒有改變任何東西。任何人都知道這個問題可能是什麼?

非常感謝!

回答

2

答案是字體文件名稱與字體名稱不同。如果文件名稱與OpenSans-Regular類似,則有時只需在調用fontWithName時執行字體名稱OpenSans即可。這就是爲什麼「OpenSans-Regular」不起作用(因爲它不是字體名稱),而「OpenSans-Bold」卻這樣做(因爲名稱與文件相同)。