2013-05-20 6 views
28

प्रदर्शित नहीं कर रहा है मैंने इसी तरह के प्रश्नों का एक समूह देखा है, लेकिन मुझे कोई जवाब नहीं मिला है जिसे मैं ढूंढ रहा हूं। जब मैं UIButton बनाने के लिए इस कोड का उपयोग करता हूं और इसे शीर्षक लेबल सेट करता हूं, UIButton दिखाई देता है, लेकिन शीर्षक लेबल दिखाई नहीं देगा।UIButton titleLabel

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; 
[button setBackgroundImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal]; 
button.titleLabel.text = @"Title"; 
button.titleLabel.font = [UIFont fontWithName:@"System-Bold" size:25.0f]; 
[self.view addSubview:button]; 

यह कोड बटन प्रदर्शित करता है, लेकिन शीर्षक दृश्य नहीं, यह शीर्षक है। वह क्यों हो सकता है? मैं आईओएस 6 और उच्चतर के लिए विकास कर रहा हूं।

नोट 1: मैं इस तरह के एक विकल्प के लिए नहीं देख रहा हूँ:

[button setTitle:@"Title" forState:UIControlStateNormal]; 

क्योंकि मैं titleLabel उपयोग करने के लिए यह फ़ॉन्ट और FONTSIZE है सेट करना होगा।

नोट 2: मैं UILabel नहीं बना सकता और इसे बटन के सबव्यू के रूप में जोड़ सकता हूं। चूंकि बटन बाद में एनिमेट कर रहा है।

उत्तर

66

बटन के शीर्षक को अपडेट करते समय आपको हमेशा नियंत्रण स्थिति निर्दिष्ट करने की आवश्यकता होती है! titleLabel के लिए

[button setTitle:@"Title" forState:UIControlStateNormal]; 

और फिर आप सेट कर सकते हैं कस्टम सेटिंग्स:

UIControlStateNormal 
UIControlStateHighlighted 
UIControlStateDisabled 
UIControlStateSelected 
तो उदाहरण के लिए

: वहाँ UIButtons के लिए चार संभावित मान हैं

[button.titleLabel setFont:[UIFont fontWithName:@"Zapfino" size:20.0]]; 
[button.titleLabel setTextColor:[UIColor blueColor]]; 
+3

आपको रंग सेट करने के लिए 'setTitleColor: forState' का उपयोग करना चाहिए शीर्षक का भी ('शीर्षक टेक्स्ट' पर 'setTextColor' को कॉल करने के बजाय)। – hverlind

8
[button setTitle:@"Title" forState:UIControlStateNormal]; 

शीर्षक स्ट्रिंग सेट करने का सही तरीका है।

शीर्षक लेबल का उपयोग फ़ॉन्ट और रंग को सेट करने के लिए किया जाता है।

+0

नोट 1: मैं इस उत्तर की तलाश नहीं कर रहा हूं। मैं फ़ॉन्ट के लिए इसका उपयोग नहीं कर सकता! – Peter

+1

titleLabel का उपयोग स्ट्रिंग के लिए फ़ॉन्ट और रंग सेट करने के लिए किया जाता है जो सेटटाइट द्वारा सेट किया जाता है: forState: –

+0

आपको बहुत धन्यवाद, मैं इसे इतनी देर तक खोज रहा था: डी –

2

उपयोग करने का प्रयास ...

[button setNeedsLayout]; 
[button layoutIfNeeded]; 

यह लेआउट को अद्यतन करने के लिए बटन को मजबूर करेगा।