ios - guidelines - UIButton título texto color
uikit ios (3)
Estoy configurando el color del texto para UIButton
headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0
green:71/255.0
blue:113/255.0
alpha:1.0];
No está cambiando el color del mismo código que estoy usando en otro código que está funcionando.
utilizar
C objetivo
[headingButton setTitleColor:[UIColor colorWithRed:36/255.0 green:71/255.0 blue:113/255.0 alpha:1.0] forState:UIControlStateNormal];
Rápido
headingButton.setTitleColor(.black, for: .normal)
Creé una clase personalizada MyButton extendida desde UIButton
. Luego, agregué esto dentro del Identity Inspector
:
Después de esto, cambie el tipo de botón a Personalizado :
Luego puede establecer atributos como textColor
y UIFont
para su UIButton
para los diferentes estados:
Luego también creé dos métodos dentro de la clase MyButton
que tengo que llamar dentro de mi código cuando quiero que se muestre un UIButton
como resaltado:
- (void)changeColorAsUnselection{
[self setTitleColor:[UIColor colorFromHexString:acColorGreyDark]
forState:UIControlStateNormal &
UIControlStateSelected &
UIControlStateHighlighted];
}
- (void)changeColorAsSelection{
[self setTitleColor:[UIColor colorFromHexString:acColorYellow]
forState:UIControlStateNormal &
UIControlStateHighlighted &
UIControlStateSelected];
}
titleColor
establecer titleColor
para normal, resaltar y UIControlState
seleccionado porque puede haber más de un estado a la vez según la documentación de UIControlState
. Si no crea estos métodos, el UIButton
mostrará la selección o el resaltado, pero no permanecerán en el UIColor
que haya configurado dentro del UIInterface Builder
porque solo están disponibles para una breve visualización de una selección, no para mostrar la selección.
En Swift:
Cambiar el color del texto de la etiqueta es bastante diferente a cambiarlo por un UIButton
. Para cambiar el color del texto de un UIButton
utiliza este método:
self.headingButton.setTitleColor(UIColor(red: 107.0/255.0, green: 199.0/255.0, blue: 217.0/255.0), forState: UIControlState.Normal)