UIButton başlık metni rengi


Yanıtlar:


438

kullanım

Objective-C

[headingButton setTitleColor:[UIColor colorWithRed:36/255.0 green:71/255.0 blue:113/255.0 alpha:1.0] forState:UIControlStateNormal];

hızlı

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

2
bu çalışıyor. ancak orijinal sorudaki kod da sıklıkla işe yarar. kimse neden sadece bazen sorudaki koda yanıt veremediğini biliyor?
crgt

7
Bunun nedeni, düğmenin tıklanması veya durumun başka bir şekilde değiştirilmesi durumunda, düğmedeki kodun, düğmenin o durum için sahip olduğu dahili ayarlarla eşleşecek şekilde titleLabel öğesinin özelliklerini sıfırlamasıdır.
psycotica0

1
apple dokümantasyonunda şunlar belirtilir: "Metin rengini veya gölge rengini ayarlamak için etiket nesnesini kullanmayın. Bunun yerine, setTitleColor: forState: ve setTitleShadowColor: forState: bu sınıfın bu değişiklikleri yapmak için yöntemlerini kullanın." Yine de "neden" gerçek bir açıklama yok.
clauswey

EN ÖNEMLİ UIControlStateNormal için bir renk ayarladığınızda, diğer tüm durumlar için ayarlamanıza gerek yoktur (düğmenize basıldığında aynı görünmesini istiyorsanız).
drpawelo

uygulama temsilcisindeki düğme metni rengini genel olarak değiştirme. Belki UIButton.appearance (). SetTitleColor?
Awais Fayyaz

5

Özel bir sınıf MyButton genişletilmiş yarattım UIButton. Sonra şunu içine ekledi Identity Inspector:

resim açıklamasını buraya girin

Bundan sonra, düğme türünü Özel olarak değiştirin :

resim açıklamasını buraya girin

Sonra gibi özelliklerini ayarlayabilirsiniz textColorve UIFontiçin senin UIButtonfarklı devletler için:

resim açıklamasını buraya girin

Sonra da MyButtonbir UIButtonvurgulanmış olarak görüntülenmesini istediğinizde benim kod içinde çağırmak zorunda sınıf içinde iki yöntem oluşturdu :

- (void)changeColorAsUnselection{
    [self setTitleColor:[UIColor colorFromHexString:acColorGreyDark] 
               forState:UIControlStateNormal & 
                        UIControlStateSelected & 
                        UIControlStateHighlighted];
}

- (void)changeColorAsSelection{
    [self setTitleColor:[UIColor colorFromHexString:acColorYellow] 
               forState:UIControlStateNormal & 
                        UIControlStateHighlighted & 
                        UIControlStateSelected];
}

titleColorNormal, vurgulamak ve seçmek için ayarlamanız gerekir , UIControlStateçünkü belgelerine göre aynı anda birden fazla durum olabilir UIControlState. Bu yöntemleri oluşturmazsanız, UIButtonseçim veya vurgulamayı görüntüler, ancak seçimin kendisini görüntülemek için değil, yalnızca seçimin kısa bir gösterimi için kullanılabilir oldukları için UIColorkurulumunuzda UIInterface Builderkalmazlar.


Son kod pasajı |yerine kullanılmamalıdır &mı?
130e13a

5

Swift'te:

Etiket metni rengini değiştirmek, a için değiştirmekten oldukça farklıdır UIButton. Bir metnin rengini değiştirmek için UIButtonbu yöntemi kullanın:

self.headingButton.setTitleColor(UIColor(red: 107.0/255.0, green: 199.0/255.0, blue: 217.0/255.0), forState: UIControlState.Normal)

0

swift 5 sürümü:

Varsayılan dahili rengi kullanarak:

  1. button.setTitleColor(UIColor.green, for: .normal)

VEYA

RGB yöntemini kullanarak özel renginizi kullanabilirsiniz:

  1. button.setTitleColor(UIColor(displayP3Red: 0.0/255.0, green: 180.0/255.0, blue: 2.0/255.0, alpha: 1.0), for: .normal)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.