2012-03-07 16 views
7

में हस्तक्षेप करता है मैं एक स्लाइडिंग मेनू (फेसबुक/ट्विटर ऐप्स की तरह) बनाने की कोशिश कर रहा हूं और मेरा संस्करण इस प्रभाव के लिए पैन जेस्चर का सफलतापूर्वक उपयोग करता है। कक्षा को "स्लाइडमेनू" कहा जाता है।पैन इशारा UISlider

मैं अपने ViewController में एक SlideMenu instantiating कर रहा हूँ, और फिर इस तरह के UISliders, UIButtons, आदि के रूप में यह पर subviews, के रूप में UI तत्व का एक समूह जोड़ने

मुद्दा यह है कि पैन इशारा के साथ हस्तक्षेप करने लगता है UISlider, जैसा कि यह स्लाइड करेगा, लेकिन बहुत कम दूरी के बाद बंद करो। मुझे एक उत्तर पर कोड का एक टुकड़ा मिला (Gesture problem: UISwipeGestureRecognizer + UISlider) हालांकि मुझे यह सुनिश्चित नहीं है कि इसे कैसे कार्यान्वित किया जाए या यह मेरे डिजाइन के साथ काम करता है।

कोड यह है:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    if ([touch.view isKindOfClass:[UISlider class]]) { 
     // prevent recognizing touches on the slider 
     return NO; 
    } 
    return YES; 
} 

मैं अपने SliderMenu वर्ग और मेरे ViewController, लेकिन कोई पासा में जोड़ने की कोशिश की। यह कहां जाता है? मुझे कौन सा प्रतिनिधि सेट करना है (यदि कोई है?) धन्यवाद

उत्तर

9

मूल रूप से, जो भी नियंत्रक या दृश्य में आप इशारा पहचानकर्ता को संभालने में हैं। जब आप इशारा पहचानकर्ता बनाते हैं, तो आप अपने प्रतिनिधि को किसी ऑब्जेक्ट (शायद आपका व्यू कंट्रोलर) पर सेट कर सकते हैं और इस ऑब्जेक्ट को UIGestureRecognizerDelegate लागू कर सकते हैं। प्रतिनिधि कॉल-बैक में से एक gestureRecognizer:shouldReceiveTouch है, और इसलिए आपको अपने ऑब्जेक्ट (देखें नियंत्रक के) कार्यान्वयन में ऊपर दिए गए कोड को कॉपी करना होगा।

+1

धन्यवाद। जिस विवरण को मैं याद कर रहा था वह इशारा के प्रतिनिधि को स्वयं में स्थापित कर रहा था। सब ठीक है! – user339946

+0

ग्रेट उत्तर !!, – l0gg3r

+0

खनन करना मेरे लिए काम करना। मैं लेकिन अब मेरी विधि जिसे पैनिंग पर बुलाया जाना चाहिए उसे नहीं कहा जा रहा है। मैं इस विधि का आह्वान कैसे कर सकता हूं? – Hassy

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