settitle guidelines buttons apple ios objective-c iphone uibutton textcolor

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)