2010-08-13 6 views
33

आईओएस में पर छुआ जा रहा से एकाधिक बटन रोक रहा है? उदाहरण के लिए, दो गैर-ओवरलैपिंग बटन जो एक तरफ हैं, एक ही समय में दो स्पर्शों के साथ टैप किए जा सकते हैं।वहाँ वैसे भी स्पर्श किया जा रहा से एक साथ किया जा रहा से एक UIView एकाधिक बटन (भाई-बहन) युक्त को रोकने के लिए एक ही समय

उत्तर

90

सेट UIView.exclusiveTouch।

+0

बहुत बढ़िया! मैंने उन बटनों के बारे में क्यों नहीं सोचा जो मुझे नहीं पता ?! – pryomoax

+4

बिल्कुल सही! वह छिपे खजाने की तरह था, इस संपत्ति के बारे में कभी नहीं जानता था, बहुत बहुत धन्यवाद। – RVN

+8

कृपया इसे प्रत्येक "UIButton" पर सेट करने के लिए नोट करें! UIView उन बटनों में नहीं हैं :) (उस UIView के सभी सबव्यूज़ में सेट करें) इस तरह -> [self.controlView.subviews makeObjectsPerformSelector: @selector (setExclusiveTouch :) के साथ ऑब्जेक्ट: [NSNumber numberWithBool: YES] ]; – Hlung

11

तुम भी विधि नीचे का उपयोग कर सकते हैं। यदि आपके पास एक समय में एकाधिक धक्का रोकने के लिए दो बटन या अधिक हैं।

उदाहरण के लिए

,

[Button1 setExclusiveTouch:YES]; 

[Button2 setExclusiveTouch:YES]; 

सेट अपने viewDidLoad या viewWillAppear

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

आप उस दृश्य पर सभी बटन खोजने के लिए और "exclusiveTouch" निर्धारित करने की आवश्यकता सच करने के लिए संपत्ति में इस विधि एक ही समय में बहु स्पर्श को रोकने के लिए

func exclusiveTouchForButtons(view: UIView) { 
    for cmp in view.subviews { 
     if let cmpButton = cmp as? UIButton { 
      cmpButton.exclusiveTouch = true 
     } else { 
      exclusiveTouchForButtons(cmp) 
     } 
    } 
} 

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

  • कोई संबंधित समस्या नहीं^_^