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)

赤、黒、青にも変えてみましたが何も起こりません。

回答:


280

func setTitleColor(_ color: UIColor?, for state: UIControlState)実際のタイトルテキストを設定するのと同じ方法を使用する必要があります。文書

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

読みやすさのために、列挙型を修飾しないほうがいいですが、それは私だけです
styler1972 '19年

@ styler1972私もそれを好む-明らかに私が最初に答えを書いたとき、私はそれを知らなかった
luk2302

1
isbeauty.setTitleColor(UIColorFromRGB(rgbValue: "F21B3F")、for:.Normal)
Arunabh Das

3
xcode 9以降は、「。Normal」ではなく「.normal」になっていると思います
Buddhisthead

4
私のコード:yourButtonName.setTitleColor(UIColor.red、for:.normal)
devgrg 2018年

111

Swift UIソリューション

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)


3

これは、Swift 5互換の回答です。組み込みの色の1つを使用したい場合は、単純に使用できます

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つのセグメントのタイトルを変更します。たとえば、「男性」と「女性」

ステップ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)
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.