Creé una clase personalizada MyButton extendida desde UIButton
. Luego agregó esto dentro de 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 MyButton
clase a los que tengo que llamar dentro de mi código cuando quiero UIButton
que se muestre como resaltado:
- (void)changeColorAsUnselection{
[self setTitleColor:[UIColor colorFromHexString:acColorGreyDark]
forState:UIControlStateNormal &
UIControlStateSelected &
UIControlStateHighlighted];
}
- (void)changeColorAsSelection{
[self setTitleColor:[UIColor colorFromHexString:acColorYellow]
forState:UIControlStateNormal &
UIControlStateHighlighted &
UIControlStateSelected];
}
Debe establecer el valor titleColor
normal, resaltado y seleccionado UIControlState
porque puede haber más de un estado a la vez de acuerdo con la documentación de UIControlState
. Si no crea estos métodos, UIButton
mostrará la selección o el resaltado, pero no se mantendrán en la UIColor
configuración dentro de UIInterface Builder
porque están disponibles para una breve presentación de una selección, no para mostrar la selección en sí.