92

UINavigationBar背景画像を変更する方法を知っています

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nabbar"] forBarMetrics:UIBarMetricsDefault];

そして、バーをそれぞれの中で異なる色に設定する方法を知っていますViews.....今、画像を使用せずに背景色をapp delegate. 各ビューから毎回設定したくないし、CGRect.

試してみ [[UINavigationBar appearance] setBackgroundColor:[UIColor colorWithRed:33/255.0 green:34/255.0 blue:36/255.0 alpha:1.0]];ましたが、機能せず、アプリデリゲートで機能するコードがどこにも見つかりません。

誰かが私を正しい方向に向けてもらえますか?

4

12 に答える 12

204

使用できます[[UINavigationBar appearance] setTintColor:myColor];

[[UINavigationBar appearance] setBarTintColor:myColor];iOS 7 以降では、 と も設定する必要があります[[UINavigationBar appearance] setTranslucent:NO]

[[UINavigationBar appearance] setBarTintColor:myColor];
[[UINavigationBar appearance] setTranslucent:NO];
于 2013-06-09T22:19:32.690 に答える
19

iOS 7 でこれを行うには:

[[UINavigationBar appearance] setBarTintColor:myColor];
于 2014-01-13T11:49:32.947 に答える
16

スウィフトの構文:

    UINavigationBar.appearance().barTintColor = UIColor.whiteColor() //changes the Bar Tint Color

それを AppDelegate didFinishLaunchingWithOptions に入れるだけで、アプリ全体で持続します

于 2015-02-13T16:07:30.030 に答える
8

スウィフト

self.navigationController?.navigationBar.barTintColor = UIColor.red
self.navigationController?.navigationBar.isTranslucent = false
于 2018-02-28T11:26:15.647 に答える
6

You can easily do this with Xcode 6.3.1. Select your NavigationBar in the Document outline. Select the Attributes Inspector. Uncheck Translucent. Set Bar Tint to your desired color. Done!

于 2015-04-26T18:58:57.963 に答える
3

他の回答が言及しているように、使用できますがsetTintColor:、単色が必要なため、知る限り色合いを設定することはできません。

解決策は、プログラムで画像を作成し、その画像を を介してすべてのナビゲーション バーの背景画像として設定することUIAppearanceです。画像のサイズについては、1x1 ピクセルの画像が機能するかどうか、またはナビゲーション バーの正確なサイズが必要かどうかはわかりません。画像の作成方法については、この質問の 2 番目の回答を確認してください。

アドバイスとして、アプリ デリゲートをこのようなもので「オーバーロード」するのは好きではありません。私がよく行うのは、必要なすべての UIAppearance 要素を設定するAppearanceConfiguration1 つのパブリック メソッドのみで名前を付けたクラスを作成し、アプリ デリゲートからそのメソッドを呼び出すことです。configureAppearance

于 2013-06-09T22:37:01.073 に答える
2

任意のView Controllerでこのコードを使用して、UINavigationの背景色を設定できます

self.navigationController.navigationBar.backgroundColor = [UIColor colorWithRed:10.0f/255.0f green:30.0f/255.0f blue:200.0f/255.0f alpha:1.0f];
于 2015-08-18T06:58:29.707 に答える