2012-12-12 4 views
7

में यूआईएसक्रॉलव्यू के लिए सीमा बाउंसिंग मुझे UIScrollView में बाउंसिंग को सीमित करने की आवश्यकता है ताकि यह नीचे की ओर सामान्य रूप से उछाल सके लेकिन शीर्ष पर एक्स पिक्सेल से आगे नहीं बढ़ता है (नीचे कोई फर्क नहीं पड़ता)।आईओएस

क्या बाउंसिंग आकार को प्रतिबंधित करने का कोई तरीका है? मुझे लगता है कि शायद हमारे पास scrollViewWillScroll (scrollViewDidScroll के बजाय) में एक विधि है जो मुझे उन स्क्रॉल घटनाओं का उपभोग करने की अनुमति देगी जो शीर्ष + एक्स से आगे बढ़ते हैं लेकिन मैं अब तक उपयुक्त नहीं ढूंढ पा रहा हूं।

कोई सुराग?

+0

क्या मैं पूछ सकता हूं कि आप बाउंसिंग को कम क्यों करना चाहते हैं? –

+0

सुपर देर से उत्तर के लिए खेद है, लेकिन हाँ आप कर सकते हैं: मैं एक फ्रंट सूची और पृष्ठभूमि छवि के साथ लंबन प्रभाव बनाने के आसपास खेल रहा था। पीएथ 2.0 ऐप चीज़ के समान कुछ, लेकिन किसी बिंदु पर मैं पिछली छवि के आकार के आधार पर बाउंसिंग बदलना चाहता था, इसलिए मुख्य सूची कभी भी इस बिंदु पर नहीं जाती है कि पीछे की छवि के बीच एक काला अंतर देखा जाता है और सामने की सूची – HiddenDev

उत्तर

13

scrollViewDidScroll: इसके लिए सही तरीका है। वहां सामग्री को सरल समायोजित करें।

यह उदाहरण 20 पिक्सल के शीर्ष उछाल को प्रतिबंधित करेगा: वहाँ एक अप्राकृतिक देरी का एक सा है

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y < -20) { 
     scrollView.contentOffset = CGPointMake(0, -20); 
    } 
} 

ध्यान दें कि जब तक दृश्य 0,0 करने के लिए वापस स्क्रॉल किया जाता है जब के लिए कारण उछाल एक गतिशील स्वाइप था, और एक ड्रैग नहीं था। लेकिन मुझे लगता है कि इसे रोकने के लिए कोई रास्ता नहीं है। मूल रूप से scrollView अभी भी पूर्ण तरीके से उछालता है लेकिन यह इसे प्रदर्शित नहीं करता है।

+0

आप पूरी तरह से सही हैं :) शायद मैं कुछ गलत कर रहा था क्योंकि यह अच्छा नहीं लग रहा था। – HiddenDev