2012-06-12 111 views

回答

66

這工作:

NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor darkGrayColor], UITextAttributeTextColor, [UIColor whiteColor], UITextAttributeTextShadowColor, nil]; 
[[UINavigationBar appearance] setTitleTextAttributes:textTitleOptions]; 
+5

你應該接受你自己的答案。 –

+0

非常有幫助..謝謝 –

+2

工作得很好。如果您還需要設置主題活動UINavigationBar的,加入這一行: '[yourViewController.navigationController.navigationBar setTitleTextAttributes:textTitleOptions]' –

3

那崩潰之前UINavigationBar的應用程序沒有標題或狀態......這些都是UIButton的方法

你需要

[[UINavigationBar appearance] setTintColor:[UIColor darkGrayColor]]; 
+0

不,這沒有用。我認爲這是爲了自己的色彩。我們已經使用setBackgroundImage:方法來更改導航欄背景,所以現在我需要將文本顏色從白色改爲深灰色,以便它清晰易讀。 – RyJ

+0

對不起,你不知道你試圖設置navBar文本顏色。以爲你只是想改變它的顏色。 –

2

的@ RyJ的回答非常好,爲我工作。想我會解囊,有在雷Wenderlich的網站,標題上這是一個很好的教程(請原諒這個雙關語):

User Interface Customization in iOS 6

請參閱部分定製UINavigationBar的

下面是代碼片段導航欄標題,在全球範圍內改變:

// Customize the title text for *all* UINavigationBars 
[[UINavigationBar appearance] setTitleTextAttributes: 
[NSDictionary dictionaryWithObjectsAndKeys: 
    [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0], 
    UITextAttributeTextColor, 
    [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8], 
    UITextAttributeTextShadowColor, 
    [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], 
    UITextAttributeTextShadowOffset, 
    [UIFont fontWithName:@"Arial-Bold" size:0.0], 
    UITextAttributeFont, 
    nil]]; 

一個其他次要的一點是,它似乎有標題欄默認的影子,所以要擺脫它,你不能只刪除該屬性。相反,您必須設置陰影偏移量:

UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetMake(0, 0)] 
0

我使用以下代碼更改標題欄的顏色。

NSShadow *shadow = [[NSShadow alloc] init]; 
shadow.shadowColor = [UIColor blackColor]; 
shadow.shadowOffset = CGSizeMake(1, 0); 

NSDictionary *titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor], 
              NSShadowAttributeName:shadow}; 

[[UINavigationBar appearance] setTitleTextAttributes:titleTextAttributes]; 
4

下面是如何做到這一點在斯威夫特的例子:

UINavigationBar.appearance().titleTextAttributes = 
    [NSFontAttributeName:UIFont(name:"Exo2-Bold", size: 18) as! AnyObject, 
    NSForegroundColorAttributeName:UIColor.whiteColor()] 
0

利用現代語法和實際運行的代碼,這是怎麼全局風格的UINavigationBar標題文字:

NSShadow *navigationBarTitleShadow = [[NSShadow alloc] init]; 
navigationBarTitleShadow.shadowColor = [UIColor colorWithWhite:0.5 
                 alpha:0.5]; 
navigationBarTitleShadow.shadowOffset = CGSizeMake(2.0, 2.0); 
[[UINavigationBar appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor blackColor], 
                 NSFontAttributeName : [UIFont fontWithName:@"Arial-BoldMT" 
                           size:30.0], 
                 NSShadowAttributeName : navigationBarTitleShadow }]; 

注意:NSShadowshadowBlurRadius財產不受尊重。

注:陰影是如此的iOS 6.永遠不要使用它們。