2013-07-10 6 views
8

पर क्लिक करने पर प्रोग्रामेटिक रूप से हाइलाइट अक्षम करें ऐसा करने का एक तरीका होना चाहिए, लेकिन मुझे यह नहीं मिल रहा है। मैं एक बटन मैं प्रोग्राम के रूप में बनाया है:UIButton

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
button.frame = CGRectMake(25, self.view.frame.size.height/4, 200, 350); 
[button setTitle:@"Inbox" forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:button]; 

सभी मैं चाहता हूँ बटन पर प्रकाश डाला या किसी भी तरह दिखने में परिवर्तन करने के लिए नहीं है जब यह छुआ है के लिए है।

[button setBackgroundImage:[UIImage imageNamed:nil] forState:UIControlStateSelected | UIControlStateHighlighted]; 

और

[button setBackgroundImage:nil forState:UIControlStateSelected]; 

और

[button setAdjustsImageWhenHighlighted:NO]; 

और

button.showsTouchWhenHighlighted = NO; 

फिर बटन कार्रवाई में मैंने कोशिश की: अब तक मैं निम्नलिखित बटन बनाते समय की कोशिश की है :

[sender setHighlighted:!sender.isHighlighted]; 

और

[sender setSelected:!sender.isSelected]; 

इन काम से कोई नहीं।

+0

आप showsTouchWhenHighlighted को देखा है? – KHansenSF

+0

धन्यवाद, बस कोशिश की, यह काम नहीं करता है! मैंने इसे अपनी चीजों की सूची में जोड़ा है जो मैंने कोशिश की है। – jac300

+0

'[बटन सेटबैकग्राउंड इमेज: [UIImage new] forState: UIControlStateSelected];' या 'समायोजित करें IMageWhenHighlighted'। – danypata

उत्तर

9

अपना यूआईबटन एक कस्टम बटन बनाएं और उसके बाद यूआईएममेज पृष्ठभूमि लागू करें। यह प्रकाश डाला या बदल जब दबाया

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
+0

महान उत्तर !!! – Asmita

12

तुम बस बस नहीं।

button.adjustsImageWhenHighlighted = NO; 
+0

महान जवाब! 2 और वर्ण – EralpB

+0

ग्रेट उत्तर मैं इस – Asmita

6

भाई को adjustImageWhenHighlighted सेट कर सकते हैं नहीं होगा, मैं आप के रूप में अलग अलग तरीकों की कोशिश की है। लेकिन अंत में अपने ही नुस्खा मिल गया है:

मैं नहीं जानता कि यह कैसे यह पर UIImage के साथ एक कस्टम बटन के साथ काम करता है लेकिन एक heighlighted राज्य के लिए पाठ के साथ एक सरल UIButton के लिए आप बस एक ही सेटिंग्स के रूप में स्थापित करना चाहिए आपके पास डिफ़ॉल्ट स्थिति में है।

और आईबी में छवि संपत्ति के लिए हाइलाइट किया गया एक व्हाइटस्पेस सेट किया गया। आप पाएंगे कि कभी-कभी बटन पर क्लिक करने पर एक अजीब छोटा ऑफसेट हो सकता है। उस स्थिति के लिए, हाइलाइट किए गए राज्य के लिए टेक्स्ट फ़ील्ड से टेक्स्ट हटा दें। यह इस मुद्दे को हल करेगा।

enter image description here

फिर अपने क्लिक करें घटना पर आप सभी में कोई चमकता देखेंगे।

+0

के लिए दो दिनों से देख रहा था यह एक हैकिश समाधान है। –

+1

यह एक हैकिश समाधान है जो तेजी से एक्सकोड 6.2 बीटा 5 पर काम करता है। "सामान्य" कामयाब कुछ भी नहीं है। आपने अभी अपना दिन और रात बचाई है। जीजे –

+0

"डिफ़ॉल्ट" स्थिति के समान छवि को सेट करने के लिए, मेरे लिए काम किया। – Resty

0

टिंट रंग के साथ एक कस्टम PNG छवि का उपयोग करते हुए उन लोगों के लिए चालू किया, तो आप इस कोड के साथ मंद (जैसे ग्रे सफेद से) से बच सकते हैं:

clearButton.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;