Làm cách nào để đặt màu văn bản tiêu đề của UIButton?


124

Tôi đã thử thay đổi màu sắc của văn bản cho một nút, nhưng nó vẫn giữ màu trắng.

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)

Tôi cũng đã thử thay đổi nó thành màu đỏ, đen, xanh lam, nhưng không có gì xảy ra.

Câu trả lời:


280

Bạn phải sử dụng func setTitleColor(_ color: UIColor?, for state: UIControlState)giống như cách bạn đặt văn bản tiêu đề thực tế. Docs

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

để có thể đọc vì tôi không muốn đủ điều kiện enums của tôi, nhưng thats chỉ tôi
styler1972

@ styler1972 tôi thích điều đó quá - rõ ràng là tôi đã không biết rằng khi tôi bước đầu đã viết câu trả lời
luk2302

1
isbeauty.setTitleColor (UIColorFromRGB (rgbValue: "F21B3F"), cho: .Normal)
Arunabh Das

3
Tôi tin rằng kể từ xcode 9, bây giờ là ".normal" thay vì ".Normal"
Buddhisthead

4
mã của tôi: yourButtonName.setTitleColor (UIColor.red, cho: .normal)
devgrg

111

Giải pháp giao diện người dùng Swift

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

Swift 3, Swift 4, Swift 5

để cải thiện nhận xét. Điều này sẽ hoạt động:

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

10

Ví dụ trong cài đặt màu tiêu đề nút

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

8
Sự khác biệt giữa câu trả lời của tôi và của bạn là gì?
Vyacheslav

3

Đây là câu trả lời tương thích nhanh chóng 5. Nếu bạn muốn sử dụng một trong những màu có sẵn thì bạn chỉ cần sử dụng

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

Nếu bạn muốn một số màu tùy chỉnh, thì trước tiên hãy tạo phần mở rộng cho UIColor như bên dưới.

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

Sau đó, sử dụng nó cho nút của bạn như bên dưới.

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

Mẹo: Bạn có thể sử dụng phương pháp này để lưu trữ các màu tùy chỉnh từ mã màu rgba và sử dụng lại nó trong toàn bộ ứng dụng của mình.


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

Các thông số :

màu sắc:
Màu của tiêu đề để sử dụng cho trạng thái được chỉ định.

state:
Trạng thái sử dụng màu được chỉ định. Các giá trị có thể được mô tả trong UIControl.State.

Mẫu :

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

0

đề cập đến các nút radio, bạn cũng có thể làm điều đó với Kiểm soát phân đoạn như sau:

bước 1: kéo điều khiển được phân đoạn vào chế độ xem của bạn trong trình kiểm tra thuộc tính, thay đổi tiêu đề của hai phân đoạn, ví dụ: "Nam" và "Nữ"

bước 2: tạo một lối thoát và một hành động cho nó trong mã

bước 3: tạo một biến để sử dụng trong tương lai để chứa dữ liệu của lựa chọn

trong mã làm như sau:

@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)
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.