web-dev-qa-db-ja.com

iOS7でテストされたUINavigationBarセットの色合いが機能しない

UINavigationBarを持つアプリがあり、次のように色合いを黒に設定しました:

self.navigationController.navigationBar.tintColor = [UIColor blackColor];`

IOS 6でテストしましたが、黒です。ただし、iOS 7で同じアプリを試してみると、デフォルトのナビゲーションバーとして表示されます。

タイトルにあるように、機能していませんか?

21
veereev

BarTintColorプロパティを設定する必要があります。

Tint(barTintColor)フィールドを使用して、ナビゲーションバーの背景にカスタムの色合いを指定できます。デフォルトの背景色は白です。

IOS7のドキュメントから: https://developer.Apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/UINavigationBar.html#//Apple_ref/doc/uid/TP40012857-UINavigationBar-SW1

22
Hector Matos

フェルナンドとサンジャナの答えには鍵がありますが、私はそれをより明確で明確にするために何かを追加します。

ナビゲーションバーには2つのプロパティがあります

  • 色合い
  • barTintColor

IOS 7の用語で考えていない場合、それは少し誤解を招くかもしれません。

tintColorは、ナビゲーションバーのボタンの色を変更します。背景色を変更するには、barTintColorプロパティを設定する必要があります。

self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
self.navigationController.navigationBar.tintColor = [UIColor greenColor];

このコードスニペットは、緑色のボタンを備えた白いナビゲーションバーを提供します。

16
Irina Anastasiu

次のコードを使用して、iOS7のナビゲーションバーの色合いを変更し、アプリデリゲートの "applicationDidFinishLaunch"メソッドに追加しました。

/* ios 7 Change */
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
    {
        [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x4B678B)];
        NSShadow *shadow = [[NSShadow alloc] init];
        shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
        shadow.shadowOffset = CGSizeMake(0, 1);
        [[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                               [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
                                                               shadow, NSShadowAttributeName,
                                                               [UIFont fontWithName:@"Helvetica Neue" size:21.0], NSFontAttributeName, nil]];
        // self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
        //[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
        [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

    }
9
Divya Bhalodiya

次のコードは私のために働いています:

self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
4
sanjana

同じ問題がありましたが、ストーリーボードファイルで解決しました。

以下を試してください。

  1. .storyboardファイルを開きます。
  2. Navigation Controllerでシーンを選択する
  3. Navigation ControllerのシーンにNavigation Barアイテムを選択します enter image description here

  4. XCodeの右側にある[ユーティリティ]タブを開きます

  5. 属性インスペクターを開く
  6. [ナビゲーションバー]グループには、[バーの色合い]ドロップダウンリストがあります。色合いには任意の色を選択できます。 enter image description here
4
forallepsilon
    [UINavigationBar appearance].tintColor = [UIColor redColor];
    if ([[UINavigationBar appearance] respondsToSelector:@selector(setBarTintColor:)]) {
        [UINavigationBar appearance].barTintColor   = [UIColor redColor];
    }

//または

    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    if ([self.navigationController.navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
        self.navigationController.navigationBar.barTintColor    = [UIColor redColor];
    }
3