2012-03-27 37 views
40

पर प्रोग्रामेटिक रूप से छवि और टेक्स्ट सेट करें, मुझे सामान्य और हाइलाइट किए गए राज्य के साथ-साथ पाठ के लिए प्रोग्राम के साथ प्रोग्रामेटिक रूप से बटन बनाना होगा। मैं इंटरफ़ेस बिल्डर का उपयोग करके इसे नहीं बना सकता, क्योंकि मुझे UIScrollView पर बटन बनाने की आवश्यकता है। यहां मेरे पास अब तक का कोड है:UIButton

- (void)loadView { 
    CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame]; 
    scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect]; 
    scrollView.contentSize=CGSizeMake(320,960); 

    UIImageView *tempImageView2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.jpeg"]]; 

    UIImage * buttonImage = [UIImage imageNamed:@"contentlist_active.png"]; 

    self.view=scrollView; 
    [scrollView addSubview:tempImageView2]; 

    btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    btn.frame = CGRectMake(22, 100, 277, 32); 

    [btn setImage:buttonImage forState:UIControlStateNormal]; 

    [btn setTitle:@"hello world" forState:UIControlStateNormal]; 
    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 

    [scrollView addSubview:btn]; 

} 

लेकिन बटन पर टेक्स्ट प्रदर्शित नहीं हो रहा है। अगर मैं के लिए setImage पर टिप्पणी करता हूं, तो पाठ पूरी तरह से दिखाता है, अन्यथा नहीं। क्या मेरे पास एक ही समय में टेक्स्ट और एक छवि दोनों हो सकती है?

+0

क्या आप मुझे बता सकते हैं कि मैं पाठ को कैसे संरेखित कर सकता हूं, या तो बाएं या दाएं, अगर मैं उदाहरण के लिए अरबी पाठ डाल रहा हूं। –

उत्तर

76

UIButtons setImage शीर्षक के ऊपर छवि सेट करता है ताकि आप नीचे दिए गए पाठ को देख सकें। तो सेटबैकग्राउंड इमेज के साथ छवि को अपने बटन पर सेट करने का प्रयास करें।

ऑब्जेक्टिव-सी:

[btn setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

स्विफ्ट:

myButton.setBackgroundImage(buttonImage, forState: UIControlState.Normal) 
+1

उसने ऐसा किया, बहुत बहुत धन्यवाद :) –

+0

क्या आप मुझे बता सकते हैं कि मैं पाठ को कैसे संरेखित कर सकता हूं, या तो बाएं या दाएं, अगर मैं उदाहरण के लिए अरबी पाठ डाल रहा हूं। –

+1

[yourButton.titleLabel setTextAlignment: UITextAlignmentLeft]; – iPrabu

4

आप

[btn setBackgroundImage:buttonImage forState:UIControlStateHighlighted]; 

यह आपकी समस्या का समाधान हो सकता है की कोशिश की है।

+0

हाँ यह काम करता है, धन्यवाद :) –

22

आप कोई गलती की है, तो आप

[btn setImage:buttonImage forState:UIControlStateNormal]; 

के बजाय

[btn setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

कर रहे हैं यह ठीक काम करेंगे।

+0

हाँ मेरा बुरा, धन्यवाद :) –

0
 var menuButton:UIButton? 

    override func viewWillAppear(animated: Bool) { 
    menuButton = UIButton(frame: CGRectMake(0,0,30,30)) 
     menuButton?.setBackgroundImage(UIImage(named: "menu.png"), forState: UIControlState.Normal) 

    }