2012-09-14 10 views
6

में स्क्रॉलिंग से UITableView को रोकता है मैंने अपने UITableView पर दो स्वाइप इशारा पहचानकर्ता (बाएं स्वाइप करें और दाएं स्वाइप) जोड़े हैं। उसके बाद मेरे टेबल व्यू ने स्क्रॉलिंग बंद कर दी है। उसी समय -(void)didSelectRowAtIndex ठीक काम करता है। समस्या क्या हो सकती है?आईफोन - UIGestureRecognizer XCD 4.5

मैंने जो कुछ किया है वह ऑब्जेक्ट लाइब्रेरी से मेरे UITableView पर स्वाइप जेश्चर रिकग्नाइज़र को खींच लिया गया है।

अगर मैं उन्हें हटा देता हूं, तो मेरी तालिका फिर से स्क्रॉल करना शुरू हो जाती है।

युपीडी:

यह Xcode 4.5 पर अपग्रेड करने के बाद क्या होता है। एक्सकोड के पुराने संस्करणों में ऐसी कोई समस्या नहीं है। इस व्यवहार से बचने के लिए - UIGestureRecognizers प्रोग्रामिक रूप से जोड़ें, आईबी में नहीं। इशारा पहचानकर्ता cancelsTouchesInView की

उत्तर

6

सिर्फ bellow कोड कोशिश कर सकते हैं तो आप इस मदद .... bellow कोड viewDidLoad: विधि में लिखने

UISwipeGestureRecognizer *swipeGestureObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideOpen_Clicked:)] autorelease];//yourSlideOpen_Clicked is method name where you doing something 
swipeGestureObjectImg.numberOfTouchesRequired = 1; 
swipeGestureObjectImg.direction = (UISwipeGestureRecognizerDirectionLeft); 
[yourView addGestureRecognizer:swipeGestureObjectImg]; 

UISwipeGestureRecognizer *swipeGestureRightObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideClose_Clicked:)] autorelease];//yourSlideClose_Clicked is method name where you doing something 
swipeGestureRightObjectImg.numberOfTouchesRequired = 1; 
swipeGestureRightObjectImg.direction = (UISwipeGestureRecognizerDirectionRight); 
[yourView addGestureRecognizer:swipeGestureRightObjectImg]; 

यहाँ अगर tableview UIView वर्ग के subview है फिर उपरोक्त कोड का उपयोग करें अन्यथा "yourtiew"

मुझे उम्मीद है कि यह आपकी मदद करेगा ...

:)

+2

हां, यह प्रोग्रामिंग रूप से जोड़ने के बाद काम करता है। ऐसी समस्या तब होती है एक्सकोड 4.5 – Oleg

+0

पर अपडेट करना मैं पुष्टि कर सकता हूं कि यह प्रोग्रामेटिक रूप से जोड़कर काम करता है। – Leonardo

1

सेट संपत्ति = नहीं

+0

यह मदद नहीं करता है .. – Oleg

+0

हाँ, आप सही हैं, लेकिन यह एक्सकोड 4.5 में मदद नहीं करता है (यदि आपने इसे प्रोग्राम नहीं किया है) :( – DanSkeel

1

मुझे एक ही समस्या थी: मैं कोड के माध्यम से उन्हें बनाने के बजाय सीधे अपने टैबगेस्टर रिकॉग्नाइज़र को स्टोरीबोर्ड पर खींचता था। आईओएस 6 के साथ अब यह स्क्रॉलिंग तोड़ने लगता है।

मैं कोड के माध्यम से सीधे स्टोरीबोर्ड पर दृश्य, इशारे आदि जोड़ना पसंद करता हूं।

तुम अब भी ऐसा कर सकते हैं लेकिन दो परिवर्तन के साथ:

1) आउटलेट संग्रह संदर्भित

  • राइट-क्लिक करें GestureRecognizer जो दृश्य की गोदी के भीतर आपको दिखाई देती है।
  • साफ़ अनुभाग संदर्भित आउटलेट संग्रह

2) कोड

  • के माध्यम से संबंधित देखने के लिए GestureRecognizer संलग्न अपने GestureRecognizer के लिए एक आउटलेट बनाएं
  • viewDidLoad विधि के भीतर निम्नलिखित पंक्ति जोड़ दें :

    [self.tableView addGestureRecognizer:_tabGesture];

0

मुझे इसी समस्या का सामना करना पड़ा और मैंने इशारा पहचानकर्ता को तालिका दृश्य के बजाय दृश्य में जोड़कर हल किया।

  1. स्टोरीबोर्ड दिखाएं।
  2. कनेक्शन इंस्पेक्टर दिखाएं।
  3. दस्तावेज़ रूपरेखा दिखाएं।
  4. इशारा पहचानकर्ता के बीच "संदर्भ आउटलेट संग्रह" पर नया लिंक बनाएं और दृश्य नियंत्रक के नीचे नोड देखें।

सादर। पेड्रो।