जवाबों:
आपका बटन buttonType
कस्टम पर सेट होना चाहिए ।
आईबी में आप "हाइलाइट एडजस्ट इमेज" को अनचेक कर सकते हैं।
प्रोग्रामेटिक रूप से आप उपयोग कर सकते हैं theButton.adjustsImageWhenHighlighted = NO;
इसी तरह के विकल्प "विकलांग" राज्य के लिए भी उपलब्ध हैं।
IB में "हाइलाइट एडजस्ट इमेज" को अनचेक करने के उपरोक्त उत्तर के अलावा, सुनिश्चित करें कि बटन प्रकार CUSTOM सेट है।
यह आपके लिए काम करेगा:
[button setBackgroundImage:[UIImage imageNamed:@"button_image"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];
तीसरी पंक्ति यहाँ चाल है ...
यह इमेज / बैकग्राउंड सेट करने के लिए समान काम करता है
adjustsImageWhenHighlighted
की संपत्ति UIButton
केवल पृष्ठभूमि छवि को प्रभावित करने लगता है।
डिफ़ॉल्ट से बटन की हाइलाइट की गई स्थिति में क्या परिवर्तन होता है, इस पर निर्भर करते हुए, आप उन्हें अपनी ज़रूरत के हिसाब से सेट करने के लिए कुछ तरीकों को कॉल कर सकते हैं। तो अगर छवि बदल जाती है तो आप कर सकते हैं
[myButton setImage:[myButton imageForState:UIControlStateNormal] forState:UIControlStateHighlighted];
यदि पाठ बदलता है तो आप कर सकते हैं
[myButton setTitle:[myButton titleForState:UIControlStateNormal] forState:UIControlStateHighlighted];
अन्य समान कार्य:
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
ठीक है यहाँ एक आसान समाधान है अगर यह आपके लिए काम करता है, तो इस पर मेरे सिर को पीटने के एक सप्ताह के बाद अंत में मेरे लिए यह हुआ कि मैं टचअप या टचडाउन, या जो भी काम करता हूं उसके लिए आईबीएशन विधि की 1 पंक्ति के लिए हाइलाइट किए गए = NO। मेरे लिए यह टचअप इंसाइड पर ठीक था।
-(IBAction)selfDismiss:(id)sender {
self.btnImage.highlighted = NO;
NSLog(@"selfDismiss");
etc, etc, etc.
}
स्विफ्टी डेवलपर के लिए -
yourButton.adjustsImageWhenHighlighted = false