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 textColory UIFontpara su UIButtonpara los diferentes estados:

Luego también creé dos métodos dentro de la MyButtonclase a los que tengo que llamar dentro de mi código cuando quiero UIButtonque 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 titleColornormal, resaltado y seleccionado UIControlStateporque puede haber más de un estado a la vez de acuerdo con la documentación de UIControlState. Si no crea estos métodos, UIButtonmostrará la selección o el resaltado, pero no se mantendrán en la UIColorconfiguración dentro de UIInterface Builderporque están disponibles para una breve presentación de una selección, no para mostrar la selección en sí.