UINavigationBar change title text color and font size
Asked Answered
M

2

5

I want to change navigation title's font and color..so, for that i've done this below code..but its not working...

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7")) {


    NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                               [UIColor whiteColor],
                                               NSForegroundColorAttributeName,
                                               [UIFont fontWithName:@"MyFavoriteFont" size:20.0],
                                               NSFontAttributeName,
                                               nil];
    [[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
    NSLog(@"setTitleTextAttributes");
}

why this code is not working?

Moir answered 15/5, 2014 at 6:24 Comment(0)
C
9

Apply Attributes to Navigationcontroller instance.

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7")) {
    NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                               [UIColor whiteColor],
                                               NSForegroundColorAttributeName,
                                               [UIFont fontWithName:@"MyFavoriteFont" size:20.0],
                                               NSFontAttributeName,
                                               nil];
    [self.transitionNavController.navigationBar setTitleTextAttributes:navbarTitleTextAttributes];
}

Hope this helps...

Cobelligerent answered 19/5, 2014 at 6:57 Comment(0)
M
0
if([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0)
        {
            [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];
            [[UINavigationBar appearance] setTitleTextAttributes:
             @{
               UITextAttributeTextColor: [UIColor whiteColor],UITextAttributeTextShadowColor: [UIColor clearColor],UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],UITextAttributeFont: [UIFont fontWithName:@"ArialMT" size:18.0f]
               }];
            CGFloat verticalOffset = -4;
            [[UINavigationBar appearance] setTitleVerticalPositionAdjustment:verticalOffset forBarMetrics:UIBarMetricsDefault];
        }
        else
        {
            [[UINavigationBar appearance] setBarTintColor:[UIColor whiteColor]];

            // Uncomment to change the color of back button
            [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

            // Uncomment to assign a custom backgroung image
            [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];

            // Uncomment to change the back indicator image

            [[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@""]];
            [[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@""]];

            // Uncomment to change the font style of the title

            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:@"ArialMT" size:18.0], NSFontAttributeName, nil]];

            CGFloat verticalOffset = 0;
            [[UINavigationBar appearance] setTitleVerticalPositionAdjustment:verticalOffset forBarMetrics:UIBarMetricsDefault];
        }
Mcelhaney answered 19/5, 2014 at 7:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.