216

iOS 7 でナビゲーション バーの色を変更するにはどうすればよいですか?

基本的には、Twitter Nav Bar のようなものを実現したいと考えています (そのために Twitter を更新しましたiOS7)。の上にナビゲーションバーを埋め込みましたview controller。私が望むのは、ナビゲーションバーの色を上部のユーティリティバーとともに水色に変更することだけです. にオプションが見つからないようですstoryboard

4

18 に答える 18

79
self.navigationBar.barTintColor = [UIColor blueColor];
self.navigationBar.tintColor = [UIColor whiteColor];
self.navigationBar.translucent = NO;

// *barTintColor* sets the background color
// *tintColor* sets the button's color
于 2013-09-21T07:05:22.190 に答える
46

ナビゲーション ベースのアプリでは、コードを AppDelegate に配置できます。より詳細なコードは次のようになります。

// Navigation bar appearance (background and title)

[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor titleColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"FontNAme" size:titleSize], NSFontAttributeName, nil]];

[[UINavigationBar appearance] setTintColor:[UIColor barColor]];

// Navigation bar buttons appearance

[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor textBarColor], NSForegroundColorAttributeName, shadowColor, NSShadowAttributeName, [UIFont fontWithName:@"FontName" size:titleSize], NSFontAttributeName, nil];
于 2013-09-21T15:34:03.417 に答える
18

ナビゲーションバーの色をすばやく変更するには:

self.navigationController?.navigationBar.barTintColor = UIColor.red

タイトルのフォント、サイズ、色を変更:

self.title = "title"
self.navigationController?.navigationBar.titleTextAttributes = [
        NSAttributedString.Key.foregroundColor : UIColor.white,
        NSAttributedString.Key.font : UIFont(name: "Futura", size: 30)!
    ]
于 2015-10-14T09:26:57.217 に答える
14

iOS 7 では、-barTintColor プロパティを使用する必要があります。

navController.navigationBar.barTintColor = [UIColor barColor];
于 2013-09-21T07:06:47.680 に答える
12

ios6 と ios7 をサポートする必要がある場合は、 UIViewControllerでこれを使用して特定の水色を取得します。

- (void)viewDidLoad {
    [super viewDidLoad];
    NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
    if ([[ver objectAtIndex:0] intValue] >= 7) {
        self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:89/255.0f green:174/255.0f blue:235/255.0f alpha:1.0f];
        self.navigationController.navigationBar.translucent = NO;
    }else{
        self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:89/255.0f green:174/255.0f blue:235/255.0f alpha:1.0f];
    }
}
于 2013-09-22T12:45:55.980 に答える
10

ここで見た答えよりも実際には簡単です。

1) Just make sure you select the navigation bar on the Navigation control. 
2) Select the color you want in the bar tint.
3) You have other options too, and/or individually on each view (just play with it).

これが誰かに役立つことを願っています。私が見た答えが気に入らなかった。コードをできるだけきれいに保つのが好きです。プログラムでそれを行うのが間違っていると言っているわけではありませんが、私のような人がいます....これは皆さんのためです. ナビゲーション バーの色の変更

于 2014-07-04T17:58:46.840 に答える
5
//You could place this code into viewDidLoad
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    //change the nav bar colour
    self.navigationController.view.backgroundColor = [UIColor redColor];
    //change the background colour
    self.navigationController.navigationBar.translucent = NO;
 }   
//Or you can place it into viewDidAppear
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:(BOOL)animated];
    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    //change the nav bar colour
    self.navigationController.view.backgroundColor = [UIColor redColor];
    //change the background colour
    self.navigationController.navigationBar.translucent = NO;
}
于 2013-09-23T07:05:51.477 に答える
4
#define _kisiOS7 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)


  if (_kisiOS7)
    {
        [[UINavigationBar appearance] setBarTintColor:[UIcolor redcolor]];
    }
    else
    {
        [[UINavigationBar appearance] setBackgroundColor:[UIcolor blackcolor]];
        [[UINavigationBar appearance] setTintColor:[UIcolor graycolor]];
    }
于 2014-05-22T07:53:33.980 に答える
4

ナビゲーションベースのアプリケーションでは、色を変更できます

NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) {
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:19.0/255.0 green:86.0/255.0 blue:138.0/255.0 alpha:1];
    self.navigationController.navigationBar.translucent = NO;
} else {
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:19.0/255.0 green:86.0/255.0 blue:138.0/255.0 alpha:1];
}
于 2013-09-30T11:52:28.453 に答える