ナビゲーションバーの背景を黒に、その中のすべての色を白に設定します。
だから、私はこのコードを使用しました:
[[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]];
ただし、戻るボタン、テキストの色、、矢印、およびバーボタンは、デフォルトのままです青い色。
下の画像のようにそれらの色を変更するにはどうすればいいですか?
UINavigationBar
の一部のプロパティの動作がiOS 7から変更されました。あなたは以下の画像で見ることができます:
あなたと共有したい2つの美しいリンク詳細については、次のリンクを見てください。
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;
これは私が把握するために約半日かかりましたが、これは私のために働いたものです。 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]];
これに関する私の全投稿 ここ
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
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;
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
Swift/iOS8
let textAttributes = NSMutableDictionary(capacity:1)
textAttributes.setObject(UIColor.whiteColor(), forKey: NSForegroundColorAttributeName)
navigationController?.navigationBar.titleTextAttributes = textAttributes
UINavigationBar
のタイトルの色を正しく変更するには、次のコードを使います。
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor]];
UITextAttributeTextColor
は最新のios 7バージョンでは非推奨です。代わりにNSForegroundColorAttributeName
を使用してください。
タイトルのテキストサイズとのテキストの色を変更したい場合は、NSDictionaryを変更する必要があります。 titleTextAttributes、そのオブジェクトのうちの2つ:
self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:13.0],NSFontAttributeName,
[UIColor whiteColor], NSForegroundColorAttributeName,
nil];
私は以前の答えは正しいと思います、これは同じことをする別の方法です。念のために、ここで他の人と共有しています。これは、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;
iOS Settings
のAccessibility
コントロールは、ナビゲーションバーのボタンに色を付けようとするほとんどすべてをオーバーライドするようです。デフォルトの位置(コントラストを上げる、の太字、ボタンの形状などをオフにする)にすべての設定があることを確認します何でも変わる。私がそれをしたら、すべての色変更コードは期待通りに働き始めました。あなたはそれらをすべてオフにする必要はないかもしれませんが、私はそれをそれ以上追求しませんでした。