web-dev-qa-db-ja.com

UINavigationItemの背景色を変更するにはどうすればよいですか?

UINavigationItemがありますが、属性インスペクターのタイトル、プロンプト、戻るボタン以外に何も見つかりません。

enter image description here

コードを使用してUINavigationItemの背景色を変更するにはどうすればよいですか?またはプログラムで?

12
Ega Setya Putra

あなたはコードを通してそれを変えることができます...

Objective-Cの場合:

    self.navigationController.navigationBar.barTintColor = [UIColor redColor];

ViewDidLoadメソッドに上記の行を書き込みます。

Swiftの場合:

    self.navigationController?.navigationBar.barStyle = UIBarStyle.BlackTranslucent

    self.navigationController?.navigationBar.barTintColor  = UIColor.redColor();

OR

    self.navigationController!.navigationBar .setBackgroundImage(UIImage .new(), forBarMetrics: UIBarMetrics.Default)
    self.navigationController!.navigationBar.shadowImage = UIImage .new();
    self.navigationController!.navigationBar.translucent = true;
    self.navigationController!.navigationBar.backgroundColor = UIColor.redColor();

あなたはあなた自身の選択で色を変えることができます。

バーのテキストを変更するには...

navigationController.navigationBar.titleTextAttributes = [UITextAttributeTextColor: UIColor.blueColor()]

リンクを参照してください.... ここ

enter image description here

上の画像を参照してください...あなたはこの画面のような出力が好きです... !!!

16
Ashok Londhe

UINavigationBarのbackgroundプロパティを使用するべきではありませんが、代わりに次のようにbarTintColorを使用する必要があります。

self.navigationController.navigationBar.barTintColor = UIColor.redColor()

公式ドキュメント に書かれているように、バーの背景を変更するには、barTintColorプロパティにアクセスする必要があります。

The tint color to apply to the navigation bar background.

ボタンの色などのナビゲーションバーのスタイルを編集する場合は、barTintプロパティにアクセスする必要があります。戻るボタンなどのnavigationItemのスタイルを編集する場合は、UINavigationItemではなくbuttonプロパティを編集する必要があります。

2
Nicolò Ciraci

考えられる解決策の1つは、ナビゲーションアイテムを含むビューコントローラーをナビゲーションコントローラーに埋め込み、ナビゲーションバーのプロパティの色にアクセスすることです。

// Color title 'navigationItem'
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]

// Background 'navigationBar'
UINavigationBar.appearance().barTintColor = UIColor.blackColor()

// Color title 'navigationBar'
let color = UIColor.orangeColor()
self.navigationController?.navigationBar.topItem?.backBarButtonItem?.setTitleTextAttributes(
    [NSForegroundColorAttributeName: color], forState: .Normal)

Swift 4

  self.navigationController?.navigationBar.isTranslucent = false;
  self.navigationController?.navigationBar.backgroundColor = .white
0
Adriana Carelli