programar para objective instalar desde curso como cero iphone objective-c ios xcode ipad

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]];