यहाँ पर दो फिंगर घुमाएँ मेरे कोड है:आईओएस पिंच स्केल और एक ही समय
viewDidLoad:
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinch:)];
[self.canvas addGestureRecognizer:pinch];
pinch.delegate = self;
UIRotationGestureRecognizer *twoFingersRotate = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(pinchRotate:)];
[[self canvas] addGestureRecognizer:twoFingersRotate];
twoFingersRotate.delegate = self;
कोड चुटकी और Rotates के लिए:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
-(void)pinchRotate:(UIRotationGestureRecognizer*)rotate
{
SMImage *selectedImage = [DataCenter sharedDataCenter].selectedImage;
switch (rotate.state)
{
case UIGestureRecognizerStateBegan:
{
selectedImage.referenceTransform = selectedImage.transform;
break;
}
case UIGestureRecognizerStateChanged:
{
selectedImage.transform = CGAffineTransformRotate(selectedImage.referenceTransform, ([rotate rotation] * 55) * M_PI/180);
break;
}
default:
break;
}
}
-(void)pinch:(UIPinchGestureRecognizer*)pinch
{
SMImage *selectedImage = [DataCenter sharedDataCenter].selectedImage;
[self itemSelected];
switch (pinch.state)
{
case UIGestureRecognizerStateBegan:
{
selectedImage.referenceTransform = selectedImage.transform;
break;
}
case UIGestureRecognizerStateChanged:
{
CGAffineTransform transform = CGAffineTransformScale(selectedImage.referenceTransform, pinch.scale, pinch.scale);
selectedImage.transform = transform;
break;
}
default:
break;
}
}
मेरे रोटेशन पर अच्छा काम करता है इसके स्वयं और मेरा पैमाने अपने आप पर बहुत अच्छा काम करता है, लेकिन वे एक साथ काम नहीं करेंगे। एक हमेशा काम करता है या दूसरा नहीं करता है। जब मैं कार्यान्वित करता हूं तो पहचानना चाहिए साथ-साथ विथगेशर रिकॉग्नाइज़र दो इशारे एक-दूसरे के खिलाफ लड़ने लगते हैं और खराब परिणाम देते हैं। मैं क्या खो रहा हूँ? (हां मैंने <UIGestureRecognizerDelegate>
लागू किया है)
तुम मुझे मैं कैसे एक ही समय में दोनों लागू हो सकते हैं की एक कोड उदाहरण दे सकते हैं? मेरे UIRotationGestureRecognizer में "स्केल" संपत्ति नहीं है और मेरे UIPinchGestureRecognizer में "रोटेशन" संपत्ति नहीं है। और मुझे यकीन नहीं है कि मैं एक ही समय में दोनों एफ़िन का उपयोग करने के लिए उपयोग करूंगा। – spentak
खूबसूरती से काम करता है। मैं इस ज्ञान को धन्यवाद देने से बहुत बेहतर हूं! – spentak
खुशी है कि मैं मदद कर सकता हूं। बीटीडब्लू मैंने पैनिंग करने के बारे में आखिरी बिट बदल दिया। साथ ही, आप अपने XIB में इशारा पहचानकर्ता डाल सकते हैं और फिर आपको उन्हें 'viewDidLoad' में कोड के साथ बनाना नहीं है। बस एक पहचानकर्ता को एक दृश्य पर खींचें, फिर पहचानकर्ता के प्रतिनिधि और कार्रवाई आउटलेट को पहचानकर्ता से फ़ाइल के स्वामी से नियंत्रण-ड्रैग के साथ हुक करें। –