2014-08-31 40 views
0

我有一個使用自定義字體的應用程序。我遇到了使用Appearance屬性設置導航欄的字體的問題。ios自定義字體在[UINavigationController外觀] titletextapperance崩潰應用程序

我已經將字體添加到我的項目中,並將它們添加到我的info.plist文件中。

這裏是我的頌歌設置字體:

[[UINavigationBar appearance] setTitleTextAttributes: @{NSForegroundColorAttributeName: [UIColor whiteColor], 
                 NSFontAttributeName: [Refrigerator boldFontWithSize:24.0f]}]; 

這是我管理的字體自定義電冰箱對象:

+ (UIFont *)boldFontWithSize:(NSInteger)size { 
    return [UIFont fontWithName:@"RefrigeratorDeluxe-Bold" size:size]; 
} 

這裏是的,我得到了「正確」的截圖從字體冊字體名稱:

enter image description here

錯誤我得到的是這樣的:

[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1] 

如果我改變這個像「systemFont」這樣簡單的東西,那麼錯誤不會發生。

回答

0

您必須使用UIAppFonts鍵將字體文件添加到Info.plist中。

您還可以檢查字體名稱的拼寫使用;

for (NSString *familyName in [UIFont familyNames]) { 
    for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) { 
     NSLog(@"family: '%@' font: '%@'", familyName, fontName); 
    } 
} 

for (NSString *fontName in [UIFont fontNamesForFamilyName:@"RefrigeratorDeluxe"]) { 
    NSLog(@"font: '%@'", fontName); 
} 
+0

正如我所說,我已經添加的字體文​​件本身的Info.plist文件。我編輯過,以更好地反映這一點。 – 2014-08-31 22:40:17

+0

您是否看到我的編輯?你可以檢查提到的字體名稱嗎? – 2014-08-31 22:43:37

+0

正如朱利安所說的那樣。註銷字體名稱以確保您的權利。如果您無法看到註銷的字體,那麼它尚未正確添加。您想要將字體名稱附加到系列名稱上,並使用空格來創建自定義字體。 – liamnichols 2014-08-31 22:45:39

相關問題