2011-10-26 23 views
8

मैंने अपने एप्लिकेशन के लिए एक कस्टम UIButton (UIButton subclass) बनाया है। इस बटन के कार्यान्वयन के भीतर, जब इसे दबाया जाता है तो मैं पृष्ठभूमि रंग को कैसे बदलूं? (यह वापस लौटने चाहिए यह सामान्य पृष्ठभूमि जब उदास है करने के लिए। मैं वर्तमान में कोर ग्राफिक्स का उपयोग कर रहा एक ढाल पृष्ठभूमि आकर्षित करने के लिए।)यह पता लगाना कि कस्टम UIButton दबाया गया है

मैं drawRect: (self.selected और self.highlighted के लिए जाँच में शाखाओं की कोशिश की है, लेकिन कोई परिवर्तन नहीं होता क्योंकि drawRect नहीं किया जा रहा है स्पर्श घटना पर कहा जाता है।

कोई सुझाव या कोड नमूने की सराहना कर रहे हैं।

उत्तर

15

अपने स्पर्श घटना में [self setNeedsRedraw] कॉल करके देखें।


प्रश्नकर्ता ने इस उत्तर और नीचे दी गई टिप्पणियों के आधार पर एक समाधान प्रदान किया।

समाधान

उपयोग किया:

[self addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown]; 
[self addTarget:self action:@selector(buttonDepressed) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside | UIControlEventTouchCancel]; 

कहाँ चयनकर्ताओं कस्टम कार्यों कि पृष्ठभूमि परिवर्तन करते हैं।

+0

मुझे अपने पृष्ठभूमि रंग को सेट करने के लिए बटन के कार्यान्वयन के भीतर इस स्पर्श ईवेंट को कैप्चर करने की आवश्यकता है। –

+2

आप अपने आप को अपने स्वयं के स्पर्श कार्यक्रमों में हमेशा श्रोता के रूप में जोड़ सकते हैं। '[Self addTarget: self action: @selector (setNeedsRedraw) के लिए प्रयास करें ControlEvents: UIControlEventTouchDown]; ' –

+1

धन्यवाद। 'स्वयं' पर 'addTarget' का उपयोग करके काम किया। मैंने आपके उत्तर में अपना वास्तविक समाधान जोड़ा। –

संबंधित मुद्दे