web-dev-qa-db-ja.com

IOS 7ナビゲーションバーのテキストと矢印の色

ナビゲーションバーの背景をに、その中のすべての色をに設定します。

だから、私はこのコードを使用しました:

[[UINavigationBar appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [UIColor whiteColor],
      NSForegroundColorAttributeName,
      [NSValue valueWithUIOffset:UIOffsetMake(0, -1)],
      NSForegroundColorAttributeName,
      [UIFont fontWithName:@"Arial-Bold" size:0.0],
      NSFontAttributeName,
      nil]];

ただし、戻るボタン、テキストの色、矢印、およびバーボタンは、デフォルトのままです青い色
下の画像のようにそれらの色を変更するにはどうすればいいですか?

enter image description here

233
1110

UINavigationBarの一部のプロパティの動作がiOS 7から変更されました。あなたは以下の画像で見ることができます:

enter image description here


あなたと共有したい2つの美しいリンク詳細については、次のリンクを見てください。

  1. iOS 7 UI移行ガイド
  2. iOS 7用にアプリを更新する方法

barTintColor のAppleドキュメントは次のように述べています。

半透明プロパティをNOに設定しない限り、この色はデフォルトで半透明になります。

サンプルコード:

self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
[self.navigationController.navigationBar 
 setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
self.navigationController.navigationBar.translucent = NO;
750
Bhavin

enter image description here

これは私が把握するために約半日かかりましたが、これは私のために働いたものです。 navigationControllerを初期化するrootViewControllerの中で、私は私のviewDidAppearメソッドの中にこのコードを入れました:

//set bar color
[self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:85.0/255.0 green:143.0/255.0 blue:220.0/255.0 alpha:1.0]];
//optional, i don't want my bar to be translucent
[self.navigationController.navigationBar setTranslucent:NO];
//set title and title color
[self.navigationItem setTitle:@"Title"];
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];
//set back button color
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], UITextAttributeTextColor,nil] forState:UIControlStateNormal];
//set back button arrow color
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];

これに関する私の全投稿 ここ

85
John Riselvato

Swift3、ios 10

色をグローバルに割り当てるには、AppDelegate didFinishLaunchingWithOptionsで次のようにします。

let textAttributes = [NSForegroundColorAttributeName:UIColor.white]
UINavigationBar.appearance().titleTextAttributes = textAttributes

Swift 4、iOS 11

let textAttributes = [NSAttributedStringKey.foregroundColor:UIColor.white]
UINavigationBar.appearance().titleTextAttributes = textAttributes
37
lifeisfoo

Vinの答えは私にはとても役に立ちました。これはXamarin.iOS/MonoTouchを使用しているC#開発者のための同じ解決策です:

var navigationBar = NavigationController.NavigationBar; //or another reference
navigationBar.BarTintColor = UIColor.Blue;
navigationBar.TintColor = UIColor.White;
navigationBar.SetTitleTextAttributes(new UITextAttributes() { TextColor = UIColor.White });
navigationBar.Translucent = false;
20
benhorgen
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
12
Abo3atef

Swift/iOS8

let textAttributes = NSMutableDictionary(capacity:1)
textAttributes.setObject(UIColor.whiteColor(), forKey: NSForegroundColorAttributeName)
navigationController?.navigationBar.titleTextAttributes = textAttributes
11
LondonGuy

UINavigationBarのタイトルの色を正しく変更するには、次のコードを使います。

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];

UITextAttributeTextColorは最新のios 7バージョンでは非推奨です。代わりにNSForegroundColorAttributeNameを使用してください。

8
aZtraL-EnForceR

タイトルのテキストサイズのテキストの色を変更したい場合は、NSDictionaryを変更する必要があります。 titleTextAttributes、そのオブジェクトのうちの2つ:

    self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:13.0],NSFontAttributeName,
                                                                  [UIColor whiteColor], NSForegroundColorAttributeName, 
                                                                  nil];
5
OhadM

私は以前の答えは正しいと思います、これは同じことをする別の方法です。念のために、ここで他の人と共有しています。これは、ios7でナビゲーションバーのテキスト/タイトルの色を変更する方法です。

UIColor *red = [UIColor colorWithRed:254.0f/255.0f green:0.0f/255.0f blue:0.0f/255.0f alpha:1.0];
NSMutableDictionary *navBarTextAttributes = [NSMutableDictionary dictionaryWithCapacity:1];
[navBarTextAttributes setObject:red forKey:NSForegroundColorAttributeName ];
self.navigationController.navigationBar.titleTextAttributes = navBarTextAttributes;
2
grepit

iOS SettingsAccessibilityコントロールは、ナビゲーションバーのボタンに色を付けようとするほとんどすべてをオーバーライドするようです。デフォルトの位置(コントラストを上げる、の太字、ボタンの形状などをオフにする)にすべての設定があることを確認します何でも変わる。私がそれをしたら、すべての色変更コードは期待通りに働き始めました。あなたはそれらをすべてオフにする必要はないかもしれませんが、私はそれをそれ以上追求しませんでした。

1
strangeluck