Come impostare il colore del testo del titolo di UIButton?


124

Ho provato a cambiare i colori del testo per un pulsante, ma rimane ancora bianco.

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)

Ho anche provato a cambiarlo in rosso, nero, blu, ma non sta succedendo nulla.

Risposte:


282

Devi usare func setTitleColor(_ color: UIColor?, for state: UIControlState)lo stesso modo in cui imposti il ​​testo del titolo effettivo. Documenti

isbeauty.setTitleColor(UIColorFromRGB("F21B3F"), for: .normal)

per motivi di leggibilità preferisco non qualificare i miei enums, ma sono solo io
styler1972,

@ styler1972 Lo preferisco anch'io - a quanto pare non ne ero a conoscenza quando inizialmente ho scritto la risposta
luk2302

1
isbeauty.setTitleColor (UIColorFromRGB (rgbValue: "F21B3F"), per:
.Normal

3
Credo che a partire da xcode 9, ora sia ".normal" invece di ".Normal"
Buddhisthead

4
il mio codice: yourButtonName.setTitleColor (UIColor.red, per: .normal)
devgrg

111

Soluzione UI rapida

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

Swift 3, Swift 4, Swift 5

per migliorare i commenti. Questo dovrebbe funzionare:

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

10

Esempio nell'impostazione del colore del titolo del pulsante

btnDone.setTitleColor(.black, for: .normal)

8
Qual è la differenza tra la mia risposta e la tua?
Vyacheslav

3

Questa è la risposta compatibile rapida 5. Se vuoi usare uno dei colori incorporati, puoi semplicemente usare

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

Se desideri alcuni colori personalizzati, crea prima un'estensione per un UIColor come di seguito.

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

Quindi usalo per il tuo pulsante come di seguito.

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

Suggerimento: è possibile utilizzare questo metodo per memorizzare i colori personalizzati dal codice colore rgba e riutilizzarli in tutta l'applicazione.


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

Parametri :

color:
il colore del titolo da utilizzare per lo stato specificato.

state:
lo stato che utilizza il colore specificato. I valori possibili sono descritti in UIControl.State.

Campione :

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

0

facendo riferimento ai pulsanti di opzione, puoi farlo anche con il controllo segmentato come segue:

passaggio 1: trascina un controllo segmentato nella tua vista nell'ispettore attributi cambia il titolo dei due segmenti, ad esempio "Maschio" e "Femmina"

passaggio 2: crea un punto vendita e un'azione per esso nel codice

fase 3: creare una variabile per un utilizzo futuro per contenere i dati della scelta

nel codice fai come segue:

@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)
    }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.