UINavigationBar change title text color and font size

家住魔仙堡 提交于 2019-12-13 13:11:16

问题


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?


回答1:


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...




回答2:


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];
        }


来源:https://stackoverflow.com/questions/23670709/uinavigationbar-change-title-text-color-and-font-size

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!