titletextattributes color bar iphone

iphone - color - Cambiando la fuente de NavigationItem



titletextattributes swift 4 (10)

A partir de iOS5 +, puede usar el protocolo UIAppearance para cambiar la fuente del título de navegación, aquí está el código:

NSMutableDictionary *titleBarAttributes = [NSMutableDictionary dictionaryWithDictionary: [[UINavigationBar appearance] titleTextAttributes]]; [titleBarAttributes setValue:[UIFont fontWithName:@"Helvetica-Bold" size:18] forKey:UITextAttributeFont]; [[UINavigationBar appearance] setTitleTextAttributes:titleBarAttributes];

He usado este código para cambiar el título de un artículo de NavigationItem :

self.navigationItem.title = @"My Name is ABC";

¿Cómo puedo cambiar el tamaño de fuente y también la fuente?


A partir de iOS5, puedes hacer esto en 1 línea:

[[UINavigationBar appearance] setTitleTextAttributes: @{UITextAttributeFont: [UIFont fontWithName:@"Helvetica" size:20.0f]}];


Aquí está la solución Swift 2 moderna:

let customFont = UIFont(name: "Helvetica", size: 17) UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : customFont!]


Código de muestra :

CGRect frame = CGRectMake(0, 0, 400, 44); UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease]; label.backgroundColor = [UIColor clearColor]; label.font = [UIFont boldSystemFontOfSize:8.0]; label.textAlignment = UITextAlignmentCenter; label.textColor = [UIColor whiteColor]; label.text = @"Sample custom Title With small Fonts "; self.navigationItem.titleView = label;


Desde iOS5 puedes usar la nueva propiedad titleTextAttributes así:

NSMutableDictionary *newAttributes = [[NSMutableDictionary alloc] init]; [newAttributes setObject:[UIFont boldSystemFontOfSize:18] forKey:UITextAttributeFont]; [self.navigationController.navigationBar setTitleTextAttributes:newAttributes];

Las claves posibles son:

UITextAttributeFont UITextAttributeTextColor UITextAttributeTextShadowColor UITextAttributeTextShadowOffset


He encontrado una buena respuesta para esto. Creo que es similar a la respuesta aceptada; sin embargo, búsquelo con más detalle.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self){ // this will appear as the title in the navigation bar UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease]; 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 yellowColor]; // change this color self.navigationItem.titleView = label; label.text = NSLocalizedString(@"PageThreeTitle", @""); [label sizeToFit]; } return self; }

Para más detalles, consulte este Link


Para centrar el ejemplo anterior, debe tener el tamaño solo tan ancho como el texto, esto debería hacer el truco.

UIFont * font = [UIFont fontWithName:@"Helvetica" size:18.0f]; CGRect frame = CGRectMake(0, 0, [@"Lorem Ipsum" sizeWithFont:font].width, 44);


Para swift 3

self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName :UIfont(named:"test") ]


// Configuración de apariencia para la fuente del título de navegación a través de la aplicación ...

let customFont = UIFont(name: "Helvetica-Bold", size: 15) UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.font : customFont!]


Swift 4

en AppDelegate.swift

UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "Helvetica-Bold", size: 15)!], for: .normal)