2011-10-25 18 views
5

UIButton के ड्राइंग के विधि कॉलिंग अनुक्रम क्या है?UIButton की पृष्ठभूमि छवि के शीर्ष पर कस्टम ड्राइंग

मेरे पास UIButton सबक्लास है, चलो इसे UIMyButton पर कॉल करें। मैं इसे एक .xib नियंत्रक में जोड़ता हूं और इसे पृष्ठभूमि छवि देता हूं। फिर UIMyButton.m फ़ाइल में मैं drawRect विधि ओवरराइड करता हूं और एक आकृति खींचता हूं। कुछ की तरह:

- (void)drawRect:(CGRect)rect { 
    CGContextRef c = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColorWithColor(c, [UIColor orangeColor].CGColor); 
    CGContextFillRect(c, rect); 
} 

समस्या यह है कि यह पृष्ठभूमि छवि के नीचे नारंगी आयत ड्रॉ है। पृष्ठभूमि छवियों को चित्रित/अद्यतन करने के लिए कौन सी विधियां ज़िम्मेदार हैं (उदाहरण के लिए "टैप डाउन" पर अपडेट)? मैं बटन पर अतिरिक्त कस्टम सबव्यूव जोड़ने के बिना शीर्ष पर ड्रॉ को कैसे मजबूर करूं (या पृष्ठभूमि छवि एक सबव्यू स्वयं है)?

मैं सिर्फ UIButton ड्राइंग अनुक्रम कामों के बारे में स्पष्ट समझने की कोशिश कर रहा हूं।

+0

हाय बास्टेक - क्या आप वहां हैं? वास्तव में आपको नीचे दिए गए उत्कृष्ट उत्तर को चिह्नित करना चाहिए! – Fattie

उत्तर

4

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

-(void)drawRect:(CGRect)rect 
{ 
    CGContextRef ctx=UIGraphicsGetCurrentContext(); 

    UIImage *image = [UIImage imageNamed:@"image.jpg"]; 
    [image drawInRect:self.bounds]; 

    CGContextSetFillColorWithColor(c, [UIColor orangeColor].CGColor); 
    CGContextFillRect(c, rect); 
} 
संबंधित मुद्दे