Bagaimana cara mengatur warna teks judul UIButton?

124

Saya mencoba mengubah warna teks untuk sebuah tombol, tetapi tetap putih.

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)

Saya juga mencoba mengubahnya menjadi merah, hitam, biru, tetapi tidak ada yang terjadi.

coolmac
sumber

Jawaban:

282

Anda harus menggunakan func setTitleColor(_ color: UIColor?, for state: UIControlState)cara yang sama seperti Anda menyetel teks judul yang sebenarnya. Docs

isbeauty.setTitleColor(UIColorFromRGB("F21B3F"), for: .normal)
luk2302
sumber
demi keterbacaan saya memilih untuk tidak memenuhi syarat enum saya, tapi itu hanya saya
styler1972
@ styler1972 Saya lebih suka itu juga - tampaknya saya tidak menyadarinya ketika saya pertama kali menulis jawabannya
luk2302
1
isbeauty.setTitleColor (UIColorFromRGB (rgbValue: "F21B3F"), untuk: .Normal)
Arunabh Das
3
Saya percaya bahwa pada xcode 9, sekarang ".normal" bukan ".Normal"
Buddhisthead
4
kode saya: yourButtonName.setTitleColor (UIColor.red, untuk: .normal)
devgrg
111

Solusi Swift UI

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

Cepat 3, Cepat 4, Cepat 5

untuk meningkatkan komentar. Ini harus bekerja:

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

Contoh dalam mengatur warna judul tombol

btnDone.setTitleColor(.black, for: .normal)
handiansom
sumber
8
Apa perbedaan antara jawaban saya dan jawaban Anda?
Vyacheslav
3

Ini adalah 5 jawaban cepat yang kompatibel. Jika Anda ingin menggunakan salah satu warna built-in maka Anda cukup menggunakan

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

Jika Anda menginginkan beberapa warna kustom, buat ekstensi untuk UIColor seperti di bawah ini terlebih dahulu.

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

Kemudian gunakan untuk tombol Anda seperti di bawah ini.

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

Tip: Anda dapat menggunakan metode ini untuk menyimpan warna khusus dari kode warna rgba dan menggunakannya kembali di seluruh aplikasi Anda.

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

Parameter :

color:
Warna judul yang akan digunakan untuk negara bagian yang ditentukan.

state:
Keadaan yang menggunakan warna yang ditentukan. Nilai yang mungkin dijelaskan dalam UIControl.State.

Contoh :

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

mengacu pada tombol radio, Anda juga dapat melakukannya dengan Kontrol Tersegmentasi sebagai berikut:

langkah 1: seret kontrol tersegmentasi ke tampilan Anda di pemeriksa atribut, ubah judul kedua segmen, misalnya "Pria" dan "Wanita"

langkah 2: buat outlet & tindakan untuk itu dalam kode

langkah 3: buat variabel untuk digunakan di masa mendatang untuk memuat data pilihan

dalam kode lakukan sebagai berikut:

@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 pemalu
sumber