Як встановити колір заголовка тексту 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)

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

Відповіді:


282

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

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

заради читабельності я вважаю за краще не кваліфікувати своїх перерахунків, але це тільки я
styler1972,

@ styler1972 Я також вважаю за краще це - мабуть, я про це не знав, коли спочатку написав відповідь
luk2302

1
isbeauty.setTitleColor (UIColorFromRGB (rgbValue: "F21B3F"), для: .Normal)
Арунаб Дас

3
Я вважаю, що щодо xcode 9, це тепер ".normal" замість ".Normal"
Buddhisthead

4
мій код: yourButtonName.setTitleColor (UIColor.red, для: .normal)
devgrg

111

Швидке рішення інтерфейсу користувача

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

Swift 3, Swift 4, Swift 5

для покращення коментарів. Це має працювати:

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

10

Приклад налаштування кольору заголовка кнопки

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

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)
    }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.