Change the navigation bar's font

前端 未结 7 1406
没有蜡笔的小新
没有蜡笔的小新 2020-12-02 10:41

The question is plain easy and simple, the answer unfortunately not.

How can you change the font of the text in the UINavigationBar?

相关标签:
7条回答
  • 2020-12-02 10:58

    Not sure why all the answers included the shadow. Adding the lines that manipulate the shadow does nothing in respect to changing text font. These 2 lines of code will work for iOS 8.4 and Swift

    let attributesDictionary = [NSFontAttributeName: UIFont(name: "Helvetica Neue", size: 14)!]
    navigationController!.navigationBar.titleTextAttributes = attributesDictionary
    

    The titleTextAttributes stores a dictionary that will dictate the font, color, size, and other attributes of the navigation bar's title.

    0 讨论(0)
  • 2020-12-02 10:59
         NSShadow *shadow = [NSShadow new];
    [shadow setShadowColor: [UIColor clearColor]];
    [shadow setShadowOffset: CGSizeMake(0.0f, 1.0f)];
    
    [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                             [UIFont fontWithName:@"TimeBurner" size:27.0f], NSFontAttributeName,
                                             [UIColor whiteColor], NSForegroundColorAttributeName,
                                             shadow, NSShadowAttributeName,nil]];
    
    0 讨论(0)
  • 2020-12-02 11:03

    If you wanted to change the font in the Interface Builder itself (without any code) here is the way to do it in Xcode6:

    1.) Find the Navigation Bar view under the Navigation Controller Scene enter image description here

    2.) Change the Title Font, Color and Shadow attributes in the Attributes Inspector. enter image description here

    0 讨论(0)
  • 2020-12-02 11:07

    Updated for iOS 7:

    [[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:@"HelveticaNeue-CondensedBlack" size:21.0], NSFontAttributeName, nil]];
    

    courtesy of:

    http://www.appcoda.com/customize-navigation-status-bar-ios-7/

    0 讨论(0)
  • 2020-12-02 11:10

    From iOS 7 and later:

    NSShadow* shadow = [NSShadow new];
    shadow.shadowOffset = CGSizeMake(0.0f, 1.0f);
    shadow.shadowColor = [UIColor redColor];
    [[UINavigationBar appearance] setTitleTextAttributes: @{
         NSForegroundColorAttributeName: [UIColor greenColor],
                    NSFontAttributeName: [UIFont fontWithName:@"Helvetica" size:20.0f],
                  NSShadowAttributeName: shadow
                                                          }];
    

    From iOS 5 and later:

     [[UINavigationBar appearance] setTitleTextAttributes: @{
                                    UITextAttributeTextColor: [UIColor greenColor],
                              UITextAttributeTextShadowColor: [UIColor redColor],
                             UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],
                                         UITextAttributeFont: [UIFont fontWithName:@"Helvetica" size:20.0f]
         }];
    

    Earlier than iOS 5:

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:20.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor =[UIColor whiteColor];
    label.text=self.title;  
    self.navigationItem.titleView = label;      
    [label release];
    
    0 讨论(0)
  • 2020-12-02 11:13

    As of iOS 5 you can use the appearance proxy.

    The answer is in a duplicate of this question: https://stackoverflow.com/a/12364740/883413

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