iphone - para - xcode 6
Cómo cambiar el color de fuente/color de texto de UIBarButtonItem en la barra de navegación (10)
Antigua pregunta, aquí está la rápida solución 2.2:
let cancel = UIBarButtonItem(title: "CANCEL", style: .Bordered, target: self, action: #selector(goToPreviousView))
cancel.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.redColor()], forState: .Normal)
self.navigationItem.leftBarButtonItem = cancel
Añado programáticamente un botón de barra a la barra de navegación de la siguiente manera
UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithTitle:@"CANCEL" style:UIBarButtonItemStyleBordered target:self action:@selector(goToPreviousView)];
self.navigationItem.leftBarButtonItem = cancel;
Ahora quiero mostrar el texto "CANCELAR" en color ROJO .
Quiero decir que necesito cambiar el texto en los elementos del botón de la barra , pero no el color del tinte del botón.
¿Como hacer eso?
Aquí se actualiza el código de la versión swift 4.0:
let reset = UIBarButtonItem(title: "Reset All", style: .plain , target: self, action: #selector(self.resetButtonClicked(_ :) ))
reset.setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.red], for: .normal)
Lo principal que todos deberían hacer si no es su proyecto y solo necesita agregar algunos cambios, es verificar
[UIBarButtonItem appearance]
Perdí mucho tiempo para darme cuenta de que alguien tenía una apariencia incorrecta de UIBarButtonItem
Mira esto :-
UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithTitle:@"Title" style:UIBarButtonItemStyleBordered target:nil action:nil];
[cancel setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor redColor], UITextAttributeTextColor,nil] forState:UIControlStateNormal];
Otro método es:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal];
[button setTitle:@"Delete" forState:UIControlStateNormal];
button.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:12.0f];
[button.layer setCornerRadius:4.0f];
[button.layer setMasksToBounds:YES];
[button.layer setBorderWidth:1.0f];
[button.layer setBorderColor: [[UIColor grayColor] CGColor]];
button.frame=CGRectMake(0.0, 100.0, 60.0, 30.0);
[button addTarget:self action:@selector(batchDelete) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem* deleteItem = [[UIBarButtonItem alloc] initWithCustomView:button];
Solo una actualización de iOS7 con la sintaxis de Obj-C moderna:
[barButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} forState:UIControlStateNormal];
UITextAttributeTextColor // está en desuso en iOS 7.
Establece el color de BarButtonItem de esta manera
[_barButtonItem setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:250/255.0
green:240/255.0
blue:230/255.0
alpha:1.0],
NSForegroundColorAttributeName,nil]
forState:UIControlStateNormal];
este código se usa para cambiar el color del texto de UIBarButtonItem en la barra de navegación:
UILabel *lblTotCaratteri = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 25)];
lblTotCaratteri.textAlignment = UITextAlignmentCenter;
lblTotCaratteri.font = [UIFont italicSystemFontOfSize:13.0];
lblTotCaratteri.textColor = [UIColor redColor];
lblTotCaratteri.backgroundColor = [UIColor clearColor];
lblTotCaratteri.adjustsFontSizeToFitWidth = YES;
lblTotCaratteri.text = @"Cancel";
UIBarButtonItem *lblCaratteri = [[UIBarButtonItem alloc] initWithCustomView: lblTotCaratteri];
self.navigationItem.rightBarButtonItem = lblCaratteri;
Swift 4.2
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: nil)
doneButton.setTitleTextAttributes([.foregroundColor: UIColor.red], for: .normal)
UITextAttributeTextColor //Is deprecated on iOS 7.
Este código se utiliza para cambiar el color del texto desde el proxy de apariencia.
[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];