64

ナビゲーションバーの色を変えたいのですが、色合いや背景を変えるべきかどうかわかりません。iOS 7 がよりフラットなデザインを目指していることは知っていますが (グラデーションの削除を推奨しています)、この 2 つを解読するのに苦労しています。背景色を設定しても、何もしません。

この画像では、背景は緑に設定されていますが、バーはまだ青です。

ここに画像の説明を入力してください

4

16 に答える 16

107

バーの tintColor の動作が iOS 7.0 で変更されました。バーの背景に影響を与えなくなり、UIView に追加された tintColor プロパティで説明されているように動作します。バーの背景に色合いを付けるには、-barTintColor を使用してください。

navController.navigationBar.barTintColor = [UIColor navigationColor];

于 2013-09-02T11:46:40.380 に答える
79

iOS 7 に似たiOS 6のナビゲーション バーを単色にしたい場合は、次のようにします。

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:[UIColor greenColor]];

iOS 7barTintColorでは、次のように使用します。

navigationController.navigationBar.barTintColor = [UIColor greenColor];

また

 [[UINavigationBar appearance] setBarTintColor:[UIColor greenColor]];
于 2013-09-18T11:03:26.170 に答える
36

// iOS 7 の場合:-

[self.navigationController.navigationBar setBarTintColor:[UIColor yellowColor]];

// iOS 6 の場合:-

[self.navigationController.navigationBar setTintColor:[UIColor yellowColor]];
于 2013-10-08T06:24:37.570 に答える
11

背景色プロパティは では無視されるUINavigationBarため、ルック アンド フィールを調整したい場合は、 を使用するか、 UINavigationBar クラス リファレンスtintColorの「バーの外観のカスタマイズ」にリストされている他のメソッドを呼び出す必要があります( など)。setBackgroundImage:forBarMetrics:

iOS 7 ではプロパティの動作が異なることに注意してくださいtintColor。そのため、iOS 7 と以前のバージョンの間で一貫した外観が必要な場合は、背景画像を使用するのが最善の方法です。また、ストーリーボードで背景画像を構成できないことにも注意してください。 を作成しIBOutletて、または他の適切な場所UINavigationBarで変更する必要があります。viewDidLoad

于 2013-08-11T21:53:23.543 に答える
5

もう1つ、 UIPopoverでナビゲーションbgの色を変更したい場合は、に設定barStyleする必要がありますUIBarStyleBlack

if([UINavigationBar instancesRespondToSelector:@selector(barTintColor)]){ //iOS7
    navigationController.navigationBar.barStyle = UIBarStyleBlack;
    navigationController.navigationBar.barTintColor = [UIColor redColor];
}
于 2013-11-28T08:00:16.727 に答える
4

iOS 6 と 7 の両方で正しく設定する方法を次に示します。

+ (void)fixNavBarColor:(UINavigationBar*)bar {
    if (iosVersion >= 7) {
        bar.barTintColor = [UIColor redColor];
        bar.translucent = NO;
    }else {
        bar.tintColor = [UIColor redColor];
        bar.opaque = YES;
    }
}
于 2013-11-05T08:43:29.243 に答える
4

iOS のバージョンを確認し、ナビゲーション バーの色合いを簡単に設定できます。

if (SYSTEM_VERSION_LESS_THAN(@"7.0")) {
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.9529 green:0.4392 blue:0.3333 alpha:1.0];
}else{

    self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0.9529 green:0.4392 blue:0.3333 alpha:1.0];
    self.navigationItem.leftBarButtonItem.tintColor = [UIColor whiteColor];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}
于 2015-05-04T09:47:26.920 に答える
3

投稿された回答に基づいて、これは私にとってはうまくいきました:

/* check for iOS 6 or 7 */
if ([[self navigationController].navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
    [[self navigationController].navigationBar setBarTintColor:[UIColor whiteColor]];

} else {
    /* Set background and foreground */
    [[self navigationController].navigationBar setTintColor:[UIColor whiteColor]];
    [self navigationController].navigationBar.titleTextAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:[UIColor blackColor],UITextAttributeTextColor,nil];
}
于 2014-01-15T20:43:30.023 に答える
2

AppDelegate.m の didFinishLaunchingWithOptions() に以下のコードを挿入します。

[[UINavigationBar appearance] setBarTintColor:[UIColor
    colorWithRed:26.0/255.0 green:184.0/255.0 blue:110.0/255.0 alpha:1.0]];
于 2016-10-25T07:22:17.313 に答える
2
    you can add bellow code in appdelegate.m .if your app is navigation based

    // for background color
   [nav.navigationBar setBarTintColor:[UIColor blueColor]];

    // for change navigation title and button color
    [[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],
    NSForegroundColorAttributeName,               
    [UIFont fontWithName:@"FontNAme" size:20],
    NSFontAttributeName, nil]];
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
于 2014-02-12T11:27:16.933 に答える
1

iOS7 では、ナビゲーション コントローラーがタブ バー、スプリットビュー、またはその他のコンテナーに含まれている場合、ナビゲーション バーの外観をグローバルに変更するには、次のメソッドを使用します::

[[UINavigationBar appearanceWhenContainedIn:[UITabBarController class],nil] setBarTintColor:[UIColor blueColor]];
于 2014-06-04T07:45:32.347 に答える