這個崩潰的應用程序:iOS - 使用外觀全局更改導航欄標題顏色?
[[UINavigationBar appearance] setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
有沒有辦法做到這一點使用的外觀?
這個崩潰的應用程序:iOS - 使用外觀全局更改導航欄標題顏色?
[[UINavigationBar appearance] setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
有沒有辦法做到這一點使用的外觀?
這工作:
NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor darkGrayColor], UITextAttributeTextColor, [UIColor whiteColor], UITextAttributeTextShadowColor, nil];
[[UINavigationBar appearance] setTitleTextAttributes:textTitleOptions];
那崩潰之前UINavigationBar的應用程序沒有標題或狀態......這些都是UIButton的方法
你需要
[[UINavigationBar appearance] setTintColor:[UIColor darkGrayColor]];
不,這沒有用。我認爲這是爲了自己的色彩。我們已經使用setBackgroundImage:方法來更改導航欄背景,所以現在我需要將文本顏色從白色改爲深灰色,以便它清晰易讀。 – RyJ
對不起,你不知道你試圖設置navBar文本顏色。以爲你只是想改變它的顏色。 –
的@ 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)]
我使用以下代碼更改標題欄的顏色。
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];
下面是如何做到這一點在斯威夫特的例子:
UINavigationBar.appearance().titleTextAttributes =
[NSFontAttributeName:UIFont(name:"Exo2-Bold", size: 18) as! AnyObject,
NSForegroundColorAttributeName:UIColor.whiteColor()]
利用現代語法和實際運行的代碼,這是怎麼全局風格的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 }];
注意:NSShadow
的shadowBlurRadius
財產不受尊重。
注:陰影是如此的iOS 6.永遠不要使用它們。
你應該接受你自己的答案。 –
非常有幫助..謝謝 –
工作得很好。如果您還需要設置主題活動UINavigationBar的,加入這一行: '[yourViewController.navigationController.navigationBar setTitleTextAttributes:textTitleOptions]' –