UIButton शीर्षक पाठ का रंग


168

मैं के लिए पाठ रंग सेट कर रहा हूँ UIButton

headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0 
                                                     green:71/255.0 
                                                      blue:113/255.0 
                                                     alpha:1.0];

यह उसी कोड को रंग नहीं बदल रहा है जो मैं दूसरे कोड में उपयोग कर रहा हूं।


जवाबों:


438

उपयोग

उद्देश्य सी

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

तीव्र

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

2
यह काम। लेकिन मूल प्रश्न में कोड भी अक्सर काम करता है। किसी को पता है कि शीर्षक केवल कभी-कभी प्रश्न में कोड का जवाब देने में विफल क्यों होता है?
crgt

7
कारण यह है कि जब बटन पर क्लिक किया जाता है या अन्यथा स्थिति में परिवर्तन होता है, तो बटन में कोड उस स्थिति के लिए आंतरिक सेटिंग्स को बटन से मिलान करने के लिए टाइटलबेल के गुणों को रीसेट करता है।
psycotica0

1
सेब का प्रलेखन निम्नलिखित बताता है: "पाठ रंग या छाया रंग सेट करने के लिए लेबल ऑब्जेक्ट का उपयोग न करें। इसके बजाय, सेटटाइटेलर का उपयोग करें: forState: और setTitleShadowColor: forState: उन परिवर्तनों को करने के लिए इस वर्ग के तरीके।" हालांकि "क्यों" का कोई वास्तविक विवरण नहीं है।
क्लॉज़वी

जब आप UIControlStateNormal के लिए रंग सेट करते हैं, तो महत्वपूर्ण रूप से, अन्य सभी राज्यों के लिए इसे सेट करने की कोई आवश्यकता नहीं है (यदि आप चाहते हैं कि आपका बटन दबाए जाने पर समान दिखे)।
ड्रापावेलो

कैसे एप्लिकेशन प्रतिनिधि में विश्व स्तर पर बटन पाठ रंग बदलने के लिए। शायद UIButton.appearance () का उपयोग कर रहे हैं।
अन्वय फैयाज

5

मैंने एक कस्टम क्लास MyButton से विस्तार किया UIButton। फिर इसे अंदर जोड़ा गया Identity Inspector:

यहां छवि विवरण दर्ज करें

इसके बाद, बटन प्रकार को कस्टम में बदलें :

यहां छवि विवरण दर्ज करें

फिर आप अलग-अलग राज्यों के लिए textColorऔर UIFontअपने जैसे गुण सेट कर सकते UIButtonहैं:

यहां छवि विवरण दर्ज करें

फिर मैंने MyButtonकक्षा के अंदर दो विधियाँ बनाईं जिन्हें मुझे अपने कोड के अंदर कॉल करना होगा जब मैं चाहता हूं कि UIButtonइसे हाइलाइट किया जाए:

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

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

आपको titleColorसामान्य, हाइलाइट और चयनित के लिए सेट करना UIControlStateहोगा क्योंकि प्रलेखन के अनुसार एक समय में एक से अधिक राज्य हो सकते हैं UIControlState। यदि आप इन विधियों को नहीं बनाते हैं, तो UIButtonचयन या हाइलाइटिंग प्रदर्शित करेंगे लेकिन वे UIColorआपके अंदर सेटअप में नहीं रहेंगे UIInterface Builderक्योंकि वे चयन के थोड़े समय के लिए उपलब्ध हैं, न कि केवल चयन को प्रदर्शित करने के लिए।


पिछले कोड का उपयोग टुकड़ा नहीं करना चाहिए |के बजाय &?
130e13a

5

स्विफ्ट में:

लेबल टेक्स्ट का रंग बदलना इसे बदलने के लिए काफी अलग है UIButtonUIButtonइस विधि के उपयोग के लिए टेक्स्ट का रंग बदलने के लिए :

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

0

स्विफ्ट 5 संस्करण:

डिफ़ॉल्ट इनबिल्ट रंग का उपयोग करके:

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

या

आप RGB विधि का उपयोग करके अपने कस्टम रंग का उपयोग कर सकते हैं:

  1. button.setTitleColor(UIColor(displayP3Red: 0.0/255.0, green: 180.0/255.0, blue: 2.0/255.0, alpha: 1.0), for: .normal)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.