2013-04-14 9 views
5

यह एक साधारण समस्या है, लेकिन हल करने में मुश्किल है।बटन को एक साथ दबाए जाने से रोकें

मेरे पास दो बटन हैं जो एक ही कार्य करते हैं।

मैंने बटन के लिए अलग-अलग स्पर्श ईवेंट सेट किए हैं। हालांकि यह मदद करता है, फिर भी उन्हें एक साथ दबा देना संभव है। धीमे कनेक्शन पर, यह और भी आसान होगा।

[vote1Btn addTarget:self action:@selector(voteUp:) forControlEvents:UIControlEventTouchUpInside]; 
[vote2Btn addTarget:self action:@selector(voteUp:) forControlEvents:UIControlEventTouchDown]; 
+3

इस बटन की कार्यक्षमता क्या है, और यह "धीमी कनेक्शन" से क्यों जुड़ी हुई है? – J2theC

+1

लगता है जैसे आप मुख्य धागे पर नेटवर्क पहुंच कर सकते हैं - यह बुरा है। – rmaddy

+2

आप दूसरे बटन पर टच डाउन का उपयोग क्यों करते हैं? यदि आप दोनों के अंदर टच अप का उपयोग करते हैं, तो आपको ठीक होना चाहिए। अनुरोध के समाप्त होने के बाद – Rob

उत्तर

21

exclusiveTouch दोनों बटनों की संपत्ति YES को सेट करें।

यदि यह पर्याप्त नहीं है, तो प्रत्येक ऑपरेशन साझा ऑपरेशन ऑब्जेक्ट के beginIgnoringInteractionEvents को कॉल करता है जब उसका ऑपरेशन शुरू होता है और endIgnoringInteractionEvents पर इसका ऑपरेशन समाप्त होता है।

+0

अगर मैं इस जवाब को और अधिक वोट दे सकता हूं तो मैं चाहता हूं - एक समय बचाओ! – chrysAllwood

+0

ऐसा लगता है कि अनन्य टच आईओएस 9 में काम नहीं करता है? –

+0

आईओएस 10 में एक आकर्षण की तरह काम करता है! – ronatory

0
for(UIView* v in self.view.subviews) 
{ 
    if([v isKindOfClass:[UIButton class]]) 
    { 
     UIButton* btn = (UIButton*)v; 
     [yourButton setExclusiveTouch:YES]; 
    } 
} 

यह काम करेगा!

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