UINavigationBar set tintcolor tested in iOS7 not working?

后端 未结 6 1273
攒了一身酷
攒了一身酷 2021-02-07 01:26

I have an app which have a UINavigationBar and I have set the tint color to black like this:

self.navigationController.navigationBar.tintColor = [UI         


        
相关标签:
6条回答
  • 2021-02-07 01:49

    Following code is working for me :

    self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
    
    0 讨论(0)
  • 2021-02-07 01:53

    I used following code to change tint color of navigation bar in iOS7,I added this in app delegate "applicationDidFinishLaunch" method and its work fine for me :

    /* 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]];
    
        }
    
    0 讨论(0)
  • 2021-02-07 01:54
        [UINavigationBar appearance].tintColor = [UIColor redColor];
        if ([[UINavigationBar appearance] respondsToSelector:@selector(setBarTintColor:)]) {
            [UINavigationBar appearance].barTintColor   = [UIColor redColor];
        }
    

    //OR

        self.navigationController.navigationBar.tintColor = [UIColor redColor];
        if ([self.navigationController.navigationBar respondsToSelector:@selector(setBarTintColor:)]) {
            self.navigationController.navigationBar.barTintColor    = [UIColor redColor];
        }
    
    0 讨论(0)
  • 2021-02-07 01:59

    You need to set the barTintColor property.

    You can specify a custom tint color for the navigation bar background using the Tint (barTintColor) field. The default background tint color is white.

    From iOS7 docs: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/UINavigationBar.html#//apple_ref/doc/uid/TP40012857-UINavigationBar-SW1

    0 讨论(0)
  • 2021-02-07 02:04

    Had the same issue, but solved it via storyboard file.

    Try the following.

    1. Open your .storyboard file.
    2. Select the scene with navigation controller
    3. Select Navigation Bar item into Navigation Controller scene enter image description here

    4. Open the Utilities tab on the right side of XCode

    5. Open Attributes Inspector
    6. In "Navigation Bar" group there will be Bar Tint dropdown list. You can choose any color for a tint. enter image description here
    0 讨论(0)
  • 2021-02-07 02:07

    Fernando's and sanjana's answers have the key, but I'll just add something to make it clearer and more obvious.

    The navigation bar has two properties

    • tintColor
    • barTintColor

    It's a bit misleading when you don't think in iOS 7 terms.

    tintColor changes the color of the buttons on your navigation bar. To change the background color, you need to set the property barTintColor.

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

    This code snippet will give you a white navigation bar with green buttons.

    0 讨论(0)
提交回复
热议问题