2013-08-28 4 views
8

मेरे पास कुछ सबव्यू के साथ UIScrollView है और इसी तरह। मैं scrollView का delegate भी हूं और - (void)scrollViewDidScroll:(UIScrollView *)scrollView लागू किया है। मेरे स्क्रॉल के नीचे एक और दृश्य है।वर्तमान UIScrollView स्पर्श को रद्द करें

मुझे लगता है कि दृश्य दिखाने के लिए अगर scrollview के contentOffset एक्स अक्ष पर 50px के नीचे चला जाता है, scrollview के contentOffset "रीसेट करें" और वर्तमान scrollview इशारा रद्द ताकि उपयोगकर्ता अभ्यस्त अपनी सामग्री में हेरफेर जब नया दृश्य दिखाई देता है चाहता हूँ।

मैं बहुत की तरह विधि को लागू किया है:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if (scrollView.contentOffset.x < -50) 
    { 
     scrollView.contentOffset = CGPointZero; 
     [self showBackView]; 
     //here I want to cancel the current touch on the scrollview since it keeps scrolling if I drag my finger 
    } 
} 

मैं NO को userInteractionEnabled गुण सेट करने की कोशिश की, लेकिन यह प्रभाव के बाद ही स्पर्श समाप्त हो गया है लेता है। और मैंने अन्य गुणों का एक गुच्छा करने की कोशिश की है लेकिन कोई भी काम नहीं करता है।

मैं इसे कैसे ठीक कर सकता हूं?

+0

क्या आपने 'scrollEnabled' को सेट करने की कोशिश की है? –

+0

हां, यह काम नहीं किया। पैन इशारा पहचानकर्ता को अक्षम करना नौकरी करता है। – Majster

उत्तर

31

स्क्रॉल व्यू के लिए panGestureRecognizer अक्षम करने का प्रयास करें (और फिर इसे पुन: सक्षम करें)। यह पहचानकर्ता के वर्तमान सत्र को रद्द कर देगा:

self.scrollView.panGestureRecognizer.enabled = NO; 
self.scrollView.panGestureRecognizer.enabled = YES; 
+1

यह बहुत अच्छा है। मेरे पास 'UITableView' के साथ एक 'UIRefreshControl' के साथ एक परिदृश्य था जो खींच लिया गया था, एक एपीआई कॉल किया था। यदि एपीआई कॉल की गलती हुई, तो एक चेतावनी संवाद था। मुद्दा यह था कि आपका स्पर्श अभी भी 'UITableView' पर है, इसलिए आप एक और एपीआई कॉल पर बातचीत कर सकते हैं और कॉल कर सकते हैं जिसे हम नहीं चाहते थे। अब 'UITableViews 'स्पर्श ईवेंट रद्द होने के साथ, उपयोगकर्ता चेतावनी के कारण अंतर्निहित तालिका दृश्य से बातचीत नहीं कर सकता है। – micnguyen

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