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]];
を試しましたが、機能せず、アプリデリゲートで機能するコードを見つけることができません。
誰かが私を正しい方向に向けてくれますか?
[[UINavigationBar appearance] setTintColor:myColor];
を使用できます
IOS 7以降では、[[UINavigationBar appearance] setBarTintColor:myColor];
と[[UINavigationBar appearance] setTranslucent:NO]
を設定する必要があります。
[[UINavigationBar appearance] setBarTintColor:myColor];
[[UINavigationBar appearance] setTranslucent:NO];
色合いではなく背景色を変更するには、次のコードを使用します。
[self.navigationController.navigationBar setBarTintColor:[UIColor greenColor]];
[self.navigationController.navigationBar setTranslucent:NO];
IOS 7でこれを行うには:
[[UINavigationBar appearance] setBarTintColor:myColor];
Swift構文:
UINavigationBar.appearance().barTintColor = UIColor.whiteColor() //changes the Bar Tint Color
AppDelegate didFinishLaunchingWithOptionsに追加するだけで、アプリ全体に保持されます
これはXcode 6.3.1で簡単に行えます。ドキュメントアウトラインでナビゲーションバーを選択します。属性インスペクターを選択します。半透明のチェックを外します。バーの色合いを希望の色に設定します。できた!
Swift:
self.navigationController?.navigationBar.barTintColor = UIColor.red
self.navigationController?.navigationBar.isTranslucent = false
他の回答が言及しているように、setTintColor:
を使用できますが、単色が必要であり、色合いを設定することはできません。
解決策は、プログラムで画像を作成し、その画像をUIAppearance
を介してすべてのナビゲーションバーの背景画像として設定することです。画像のサイズについて、1x1ピクセルの画像が機能するかどうか、またはナビゲーションバーの正確なサイズが必要かどうかはわかりません。 この質問 の2番目の答えを確認して、作成方法を確認してください。画像。
アドバイスとして、私はアプリのデリゲートをこれらのタイプのもので「オーバーロード」するのは好きではありません。私がしがちなのは、AppearanceConfiguration
という名前のクラスを作成し、パブリックメソッドconfigureAppearance
を1つだけ使用して、必要なUIAppearanceをすべて設定し、アプリデリゲートからそのメソッドを呼び出すことです。
任意の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];
Swift 4.2およびXcode 10.1で
ナビゲーションバーの色をAppDelegateからプロジェクト全体に直接変更できます。
didFinishLaunchingWithOptions launchOptions:
で以下のコード行に書き込みます
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().barTintColor = UIColor(red: 2/255, green: 96/255, blue: 130/255, alpha: 1.0)
ここに
tintColorは、戻るボタンやメニュー行の画像などの背景画像を設定するためのものです(以下の左右のメニュー画像を参照)
barTintColorはナビゲーションバーの背景色用です
特定のView Controllerのナビゲーションバーの色を設定する場合は、viewDidLoad()
の以下のコードを記述します
//Add navigation bar colour
navigationController?.navigationBar.barTintColor = UIColor(red: 2/255, green: 96/255, blue: 130/255, alpha: 1.0)
navigationController?.navigationBar.tintColor = UIColor.white