2011-12-06 45 views
5

2 इशारा पहचानकर्ता कम से एक साथ आईओएस पिंच करें:पैन और 2 फिंगर एक ही समय

UIPinchGestureRecognizer *twoFingerPinch = 
[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)]; 
[croppper addGestureRecognizer:twoFingerPinch]; 

UIPanGestureRecognizer *PanRecognizer = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)] autorelease]; 
[croppper addGestureRecognizer:PanRecognizer]; 

और:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {   
    return YES; 
} 

लेकिन एक ही समय में चुटकी और पैन से काम नहीं कर रहा है ... अक्सर मैं चुटकी कर सकता हूं क्योंकि पैन पहचानकर्ता चालू है।

संबंध

उत्तर

10

आप प्रत्येक इशारा पहचानकर्ता के लिए प्रतिनिधि स्थापित कर रहे हैं की तरह यह नहीं लगती है। gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: एक प्रतिनिधि विधि है, और इसलिए यदि इशारा पहचानकर्ता के पास कोई प्रतिनिधि नहीं है, तो इस विधि को लागू नहीं किया जाएगा।

नतीजतन, डिफ़ॉल्ट वापसी मूल्य NO होगा, और इसलिए संकेतों को एक साथ पहचाना नहीं जाएगा।

+2

+1। दूसरे शब्दों में, अपने कोड में निम्नलिखित दो पंक्तियां जोड़ें: 'twoFingerPinch.delegate = self; 'और' PanRecognizer.delegate = self; '। लोअरकेस प्रारंभिक का उपयोग करने के लिए दूसरा इशारा रिकॉग्नाइज़र का नाम बदलने पर भी विचार करें। – Till

+0

आपका अधिकार! धन्यवाद! (दोFingerPinch.delegate = self;) i – Phil

+3

बेवकूफ वेब कैश - अब मेरा जवाब हास्यास्पद लगता है :( – deanWombourne

0

क्या आप खुद को पहचानकर्ता प्रतिनिधि के रूप में स्थापित कर रहे हैं?

[twoFingerPinch setDelgate:self]; 
... 
[PanRecognizer setDelegate:self]; 

पीएस मैं आपके चर के लिए एक और अधिक सुसंगत नामकरण योजना प्राप्त करने का प्रयास भी करूंगा! सही जवाब के लिए