मेरे पास एक UIGestureRecognizer है कि मैं दो अलग-अलग UIViews पर काम करना चाहता हूं, जिनमें से दोनों UiViewController के समान दृश्य पदानुक्रम में हैं। UIGestureRecognizer की क्रिया प्रत्येक के बारे में समान है, इसलिए मैं उसी फ़ंक्शन को कॉल करना चाहूंगा (यह स्पष्ट रूप से होगा) और मैं रनटाइम पर बताउंगा कि UIViews के साथ मैं किससे व्यवहार कर रहा हूं। पर कैसे? मैं नहीं देख सकता कि UIGestureRecognizer इसके साथ ऑब्जेक्ट जानकारी ले रहा है। क्या मुझे प्रलेखन में रेखा याद आ रही है या इशारा करता है रेगुग्नाइज़र यह नहीं जानता कि यह किस वस्तु से जुड़ा हुआ है जिसे इसे बुलाया जा रहा है? ऐसा लगता है कि भाषा के बिंदु की तरह यह पता चल जाएगा।क्या UIGestureRecognizer जानता है कि इसे किस ऑब्जेक्ट पर बुलाया जाता है?
वैकल्पिक रूप से, शायद मैं वर्ग के इरादे गलत समझ और कर रहा हूँ मैं नहीं करना चाहिए:
UITapGestureRecognizer *dblTap =
[[UITapGestureRecognizer alloc] initWithTarget: self
action: @selector(handleDblTap:)];
[viewA addGestureRecognizer: dblTap];
[viewB addGestureRecognizer: dblTap];
और उसके बाद करने में सक्षम होने की उम्मीद: वास्तव में UIGestureRecognizer किया जा रहा है का समर्थन नहीं करता
-(void)handleDblTap: (UIGestureRecognizer *)gestureRecognizer
{
if (viewA)...
हैं एक साथ कई वस्तुओं से जुड़ा हुआ है, तो, यदि आप जानते हैं कि यह इसका समर्थन क्यों नहीं करता है, तो क्या आप मुझे शिक्षित कर सकते हैं? सहायता के लिए धन्यवाद।
@NJones बुला सही है। प्रति पहचानकर्ता एक दृश्य। आप प्रत्येक पहचानकर्ता के लिए एक टैग भी सेट कर सकते हैं यह पता लगाने के लिए कि कौन सा पहचानकर्ता उस विधि को बुलाता है। –