2010-03-24 10 views
40

मैंने कुछ पूरी तरह से स्पष्ट रूप से अनदेखा किया होगा ?? लेकिन मेरा बटन अपनी छवि और आकार को सही तरीके से प्रदर्शित करता है, लेकिन मुझे बस शीर्षक दिखाने के लिए शीर्षक नहीं मिल सकता है।यूआईबटन प्रकार यूआईबटन टाइप कस्टम कस्टमर प्रदर्शित नहीं करेगा शीर्षक (आईफोन)

मैं एक बहुत साधारण परीक्षण किया था, शीर्षक भी दिखाई नहीं देता जब मैं इस कार्य करें:

CGRect frameBtn = CGRectMake(160.0f, 150.0f, 144.0f, 42.0f); 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [button setImage:[UIImage imageNamed:@"left_halfscreen_button.png"] forState:UIControlStateNormal]; 
    [button setTitle:@"Hello" forState:UIControlStateNormal]; 
    [button setFrame:frameBtn]; 
    NSLog(@"Title:%@", [button currentTitle]); 
    //prints "Title:Hello 
    [self addSubview:button]; 

मैं एक कारखाने वर्ग है कि मेरे लिए कस्टम बटन उत्पन्न करता है और मैंने सोचा कि मैं वहाँ कुछ विस्तार से गड़बड़ , इसलिए मैंने ऊपर दिए गए कोड को सीधे मेरे UIView में स्थानांतरित कर दिया, शीर्षक अभी भी खाली है।

क्या यह एक बग है या क्या मैं बस अपनी आंखों के सामने कुछ याद कर रहा हूं।

की आँखों :)

उत्तर

90

छवि अतिरिक्त सेट के लिए धन्यवाद शीर्षक ओवरराइड करता है, आप शीर्षक को दिखाने के लिए छवि एक पृष्ठभूमि छवि बनाने की जरूरत है।

 
[button setBackgroundImage:[UIImage imageNamed:@"left_halfscreen_button.png"] 
     forState:UIControlStateNormal]; 
+0

धन्यवाद टॉमस :) मैं इस पर मेरे बाल बाहर खींच रहा था! मैंने सोचा था कि ऐसा कुछ चल रहा था इसलिए मैंने "लाने के लिए" लाने के लिए "लाने के लिए भी कोशिश की। मुझे प्रलेखन में पृष्ठभूमि भाग याद आया। फिर से धन्यवाद। – RickiG

+0

Tuomas के लिए धन्यवाद! मैं इस से बहुत परेशान था और यह मुझे मिला एकमात्र जवाब था। – janineanne

27

मैं सिर्फ Hab spome काफी समान समस्या ... बस शीर्षक रंग सेट, मुझे लगता है वर्तमान एक सफेद है;)

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
+2

कभी-कभी आपको uibutton.titleLabel.textColor – ColossalChris

0

मैं एक ऐसी ही समस्या थी कि शीर्षक नहीं दिखाया गया था । मैं फ्रेम संपत्ति सेट करना भूल गया:

//set the position of the button 
button.frame = CGRectMake(100, 170, 100, 30); 
13

मुझे समस्या मिली!

यह छवि शीर्षक को ओवरराइड नहीं कर रहा है। यह छवि द्वारा फ्रेम बंद धक्का दिया जा रहा है।

इस का उपयोग का प्रयास करें:

[btn setTitleEdgeInsets:UIEdgeInsetsMake(0.0, -img.size.width, 0.0, 0.0)];

आशा है कि यह मदद करता है!

+0

की बजाय setTitleColor का उपयोग करना पड़ता है इस प्रकार का मेरे लिए काम करता है। मैं [बीटीएन setTitleEdgeInsets: UIEdgeInsetsMake (0.0, 0, 0.0, 0.0)] का उपयोग कर समाप्त हो गया; आपके बटन को बटन के बाईं ओर पाठ को धक्का दिया। – arsenius

+0

हाय @arsenius UIEdgeInsetsMake (0, 0, 0, 0) आपके लिए काम करता है क्योंकि आपके पास बटन के लिए विस्तृत फ्रेम चौड़ाई है। JapCon's -img.size.width हो सकता है क्योंकि उसके पास बटन के लिए एक अलग फ्रेम चौड़ाई है। – Cong

3

जब आप UIButton का उपयोग करते हैं, तो बटन अपने फ्रेम के लिए कुछ अंतर्निहित आकार का उपयोग करता है।

आप फ्रेम स्थापित करना चाहिए:

button.frame = CGRectMake(0, 0, width, height); 

या और भी बेहतर और आरामदायक:

[button sizeToFit]; 
संबंधित मुद्दे