¿Cómo establecer el color del texto del título de UIButton?

124

Intenté cambiar los colores del texto de un botón, pero sigue siendo blanco.

isbeauty = UIButton()
isbeauty.setTitle("Buy", forState: UIControlState.Normal)
isbeauty.titleLabel?.textColor = UIColorFromRGB("F21B3F")
isbeauty.titleLabel!.font = UIFont(name: "AppleSDGothicNeo-Thin" , size: 25)
isbeauty.backgroundColor = UIColor.clearColor()
isbeauty.layer.cornerRadius = 5
isbeauty.layer.borderWidth = 1
isbeauty.layer.borderColor = UIColorFromRGB("F21B3F").CGColor
isbeauty.frame = CGRectMake(300, 134, 55, 26)
isbeauty.addTarget(self,action: "first:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(isbeauty)

También intenté cambiarlo a rojo, negro, azul, pero no pasa nada.

coolmac
fuente

Respuestas:

282

Debe utilizar func setTitleColor(_ color: UIColor?, for state: UIControlState)la misma forma en que establece el texto del título real. Docs

isbeauty.setTitleColor(UIColorFromRGB("F21B3F"), for: .normal)
luk2302
fuente
en aras de la legibilidad, prefiero no calificar mis enumeraciones, pero ese soy solo yo
styler1972
@ styler1972 Yo también prefiero eso, aparentemente no lo sabía cuando escribí inicialmente la respuesta
luk2302
1
isbeauty.setTitleColor (UIColorFromRGB (rgbValue: "F21B3F"), para: .Normal)
Arunabh Das
3
Creo que a partir de xcode 9, ahora es ".normal" en lugar de ".Normal"
Buddhisthead
4
mi código: yourButtonName.setTitleColor (UIColor.red, para: .normal)
devgrg
111

Solución de interfaz de usuario rápida

Button(action: {}) {
            Text("Button")
        }.foregroundColor(Color(red: 1.0, green: 0.0, blue: 0.0))

Swift 3, Swift 4, Swift 5

para mejorar los comentarios. Esto debería funcionar:

button.setTitleColor(.red, for: .normal)
Vyacheslav
fuente
10

Ejemplo de configuración del color del título del botón

btnDone.setTitleColor(.black, for: .normal)
handiansom
fuente
8
¿Cuál es la diferencia entre mi respuesta y la tuya?
Vyacheslav
3

Esta es una respuesta compatible con Swift 5. Si desea usar uno de los colores incorporados, simplemente puede usar

button.setTitleColor(.red, for: .normal)

Si desea algunos colores personalizados, primero cree una extensión para un UIColor como se muestra a continuación.

import UIKit
extension UIColor {
    static var themeMoreButton = UIColor.init(red: 53/255, green: 150/255, blue: 36/255, alpha: 1)
}

Luego utilícelo para su botón como se muestra a continuación.

button.setTitleColor(UIColor.themeMoreButton, for: .normal)

Consejo: puede utilizar este método para almacenar colores personalizados del código de color rgba y reutilizarlos en toda la aplicación.

Jay Mayu
fuente
2
func setTitleColor(_ color: UIColor?, 
               for state: UIControl.State)

Parámetros :

color:
el color del título que se utilizará para el estado especificado.

estado:
el estado que usa el color especificado. Los valores posibles se describen en UIControl.State.

Muestra :

let MyButton = UIButton()
MyButton.setTitle("Click Me..!", for: .normal)
MyButton.setTitleColor(.green, for: .normal)
Ramprasath Selvam
fuente
0

refiriéndose a los botones de radio, también puede hacerlo con el Control segmentado de la siguiente manera:

paso 1: arrastre un control segmentado a su vista en el inspector de atributos cambie el título de los dos segmentos, por ejemplo, "Masculino" y "Femenino"

paso 2: crea una salida y una acción para ello en el código

paso 3: cree una variable para uso futuro que contenga los datos de la elección

en el código, haga lo siguiente:

@IBOutlet weak var genderSeg: UISegmentedControl!

var genderPick : String = ""


 @IBAction func segAction(_ sender: Any) {

    if genderSeg.selectedSegmentIndex == 0 {
         genderPick = "Male"
        print(genderPick)
    } else if genderSeg.selectedSegmentIndex == 1 {
        genderPick = "Female"
          print(genderPick)
    }
}
Attoun tímido
fuente