Как установить цвет текста заголовка UIButton?

124

Я попытался изменить цвет текста для кнопки, но он по-прежнему остается белым.

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)

Я также пробовал менять его на красный, черный, синий, но ничего не происходит.

coolmac
источник

Ответы:

282

Вы должны использовать func setTitleColor(_ color: UIColor?, for state: UIControlState)тот же способ, которым вы устанавливаете фактический текст заголовка. Документы

isbeauty.setTitleColor(UIColorFromRGB("F21B3F"), for: .normal)
luk2302
источник
для удобства чтения я предпочитаю не
уточнять
@ styler1972 Я тоже предпочитаю это - видимо, я не знал об этом, когда изначально писал ответ
luk2302
1
isbeauty.setTitleColor (UIColorFromRGB (rgbValue: "F21B3F"), для: .Normal)
Арунабх Дас
3
Я считаю, что с xcode 9 теперь ".normal" вместо ".Normal"
Buddhisthead
4
мой код: yourButtonName.setTitleColor (UIColor.red, для: .normal)
devgrg
111

Решение Swift UI

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

Свифт 3, Свифт 4, Свифт 5

для улучшения комментариев. Это должно работать:

button.setTitleColor(.red, for: .normal)
Вячеслав
источник
10

Пример настройки цвета заголовка кнопки

btnDone.setTitleColor(.black, for: .normal)
handiansom
источник
8
В чем разница между моим ответом и вашим?
Вячеслав
3

Это быстрый 5-совместимый ответ. Если вы хотите использовать один из встроенных цветов, вы можете просто использовать

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

Если вам нужны пользовательские цвета, сначала создайте расширение для UIColor, как показано ниже.

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

Затем используйте его для своей кнопки, как показано ниже.

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

Совет: вы можете использовать этот метод для сохранения пользовательских цветов из цветового кода rgba и повторного использования его во всем приложении.

Джей Маю
источник
2
func setTitleColor(_ color: UIColor?, 
               for state: UIControl.State)

Параметры :

color:
цвет заголовка для использования в указанном состоянии.

состояние:
состояние, в котором используется указанный цвет. Возможные значения описаны в UIControl.State.

Образец :

let MyButton = UIButton()
MyButton.setTitle("Click Me..!", for: .normal)
MyButton.setTitleColor(.green, for: .normal)
Рампрасат Сельвам
источник
0

что касается переключателей, вы также можете сделать это с помощью сегментированного управления следующим образом:

Шаг 1: перетащите сегментированный элемент управления в свое представление в инспекторе атрибутов, измените заголовок двух сегментов, например «Мужской» и «Женский»

Шаг 2: создайте розетку и действие для нее в коде

Шаг 3: создайте переменную для будущего использования, чтобы содержать данные выбора

в коде сделайте следующее:

@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)
    }
}
Застенчивый Аттун
источник