Configurando a fonte UIBarButtonItem

Meus minutos usa botões retangulares “Concluído” no lugar dos botões “Voltar” padrão do iOS. Eu também uso a fonte Thonburi em todo o aplicativo e tive dificuldade em rastrear exatamente como definir a fonte para esses botões. Acabei vasculhando a fonte do Cheddar no github, já que Sam também usa uma fonte personalizada.

Veja como fazer:

// Customize the navigation bar item buttons, including back buttons.
id barButtonAppearance
= [UIBarButtonItem appearance];

NSDictionary *barButtonTextAttributes = @{
UITextAttributeFont: [UIFont boldMyMinutesFontOfSize:16.0f],
UITextAttributeTextShadowColor: [UIColor colorWithWhite:0.0f alpha:0.2f],
UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)]
};

[barButtonAppearance setTitleTextAttributes:barButtonTextAttributes
forState
:UIControlStateNormal];
[barButtonAppearance setTitleTextAttributes:barButtonTextAttributes
forState
:UIControlStateHighlighted];

Com a nova fonte, também precisei ajustar os deslocamentos dos rótulos de texto dos botões. Veja como fazer isso:

[barButtonAppearance setTitlePositionAdjustment:UIOffsetMake(0.0f, 0.0f)
forBarMetrics
:UIBarMetricsDefault];
[barButtonAppearance setBackButtonTitlePositionAdjustment:UIOffsetMake(-0.5f, -2.0f)
forBarMetrics
:UIBarMetricsDefault];