change font of back button on uinavigationcontroller

前端 未结 5 1159
滥情空心
滥情空心 2020-12-25 12:14

I\'m trying to change the font color of the text on my back button in my UINavigationControllerBar

    [[UIBarButtonItem appearance] setTitleColor:[UIColor r         


        
相关标签:
5条回答
  • 2020-12-25 12:25

    And the beautiful solution, iOS7+ (because of attribute names):

    NSShadow *shadow = [NSShadow new];
    [shadow setShadowColor: [UIColor colorWithWhite:0.0f alpha:0.750f]];
    [shadow setShadowOffset: CGSizeMake(0.0f, 1.0f)];
    
    [[UIBarButtonItem appearance] setTitleTextAttributes:@{
            NSFontAttributeName: [UIFont systemFontOfSize:24],
            NSForegroundColorAttributeName: [UIColor colorWithWhite:0.2 alpha:1.0],
            NSShadowAttributeName: shadow,
    } forState:UIControlStateNormal];
    
    0 讨论(0)
  • 2020-12-25 12:30
    NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
    [attributes setValue:[UIColor colorWithRed:(163.0f/255.0f) green:(0.0f) blue:(0.0f) alpha:1.0f] forKey:UITextAttributeTextColor];
    [attributes setValue:[UIColor clearColor] forKey:UITextAttributeTextShadowColor];
    [attributes setValue:[NSValue valueWithUIOffset:UIOffsetMake(0.0, 0.0)] forKey:UITextAttributeTextShadowOffset];
    [[UIBarButtonItem appearance] setTitleTextAttributes:attributes forState:UIControlStateNormal];
    

    seems to work!

    0 讨论(0)
  • 2020-12-25 12:36
    [[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                         [UIFont fontWithName:kDefaultFont size:16.0f],UITextAttributeFont,
                                                         nil] forState:UIControlStateNormal];
    
    0 讨论(0)
  • 2020-12-25 12:39

    Solution in Swift 4:

    UIBarButtonItem.appearance().setTitleTextAttributes(
    [
        NSAttributedStringKey.font: UIFont(name: "MyriadPro-SemiboldCond", size: 16)!,
        NSAttributedStringKey.foregroundColor: UIColor.white
    ], for: .normal)
    

    Add this in AppDelegate and it'll be applied to all buttons in the app.

    0 讨论(0)
  • 2020-12-25 12:41

    Use this instead, default function available in ios 5

    UIBarButtonItem *backbutton =  [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:nil action:nil];    
    
        [backbutton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                       [UIColor blackColor],UITextAttributeTextColor,[UIFont fontWithName:TEXTFONT size:16.0f],UITextAttributeFont,
                                                       nil] forState:UIControlStateNormal]; 
    
    0 讨论(0)
提交回复
热议问题