วิธีการตั้งค่าสีข้อความของ 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)

เพื่อประโยชน์ในการอ่านฉันไม่ต้องการให้คุณสมบัติ enums ของฉัน แต่นั่นเป็นเพียงฉัน
styler1972

@ 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))

Swift 3, Swift 4, Swift 5

เพื่อปรับปรุงความคิดเห็น สิ่งนี้ควรใช้งานได้:

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

10

ตัวอย่างในการตั้งค่าสีชื่อปุ่ม

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

8
อะไรคือความแตกต่างระหว่างคำตอบของฉันกับของคุณ?
Vyacheslav

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)

พารามิเตอร์ :

สี:
สีของหัวเรื่องที่จะใช้สำหรับสถานะที่ระบุ

state:
สถานะที่ใช้สีที่ระบุ ค่าที่เป็นไปได้อธิบายไว้ใน UIControl.State

ตัวอย่าง :

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

0

หมายถึงปุ่มตัวเลือกคุณสามารถทำได้ด้วย Segmented Control ดังต่อไปนี้:

ขั้นตอนที่ 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)
    }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.