2009-04-05 17 views
7

मेरे पास UIScrollView है जिसमें छवियां हैं। जब उपयोगकर्ता अंतिम छवि तक पहुंचता है और अगली छवि के लिए उंगली को स्वाइप करता है, तो मैं पहली छवि दिखाना चाहता हूं। इसी प्रकार, जब उपयोगकर्ता पहली छवि पर होता है और पिछली छवि के लिए स्वाइप करता है, तो मैं अंतिम छवि दिखाना चाहता हूं। संक्षेप में, यह एक गोलाकार प्रकार की बात होगी।परिपत्र UIScrollView

मैं इसे कैसे कार्यान्वित कर सकता हूं?

उत्तर

6

आपको सामग्री ऑफसेट और सामग्री आकार के साथ काम करने की आवश्यकता होगी।

हर एक स्क्रॉल घटना है, तो आप अगर उपयोगकर्ता कहते हैं currentLength पर है की जाँच पर विचार कर सकते - 1, और यदि हां, गतिशील scrollview के लिए एक छवि को जोड़ने।

यह जा रहा है 5 जाने के लिए काम करते हैं, हालांकि स्मृति के मामले में मुसीबत में आपको मिल सकता है अगर आप न पहले छवियों को रिहा कर देना चाहिए।

मुझे नहीं लगता कि इस समाधान सूचकांक 0.

वैकल्पिक रूप से कम छवियों के साथ काम करेंगे है ... चलें कहते हैं कि तुम I5 के लिए छवियों को I1 है। लेआउट निम्नलिखित छवियों के साथ एक scrollview: I5 I1 I2 I3 I4 I5 I1

Autoscroll I1 (I5 की ऊंचाई) के लिए, एनीमेशन के बिना।

उपयोगकर्ता कभी भी इस निशान से ऊपर स्क्रॉल है, उन्हें (एनीमेशन) के बिना दूसरी I5 I1 जोड़ी के लिए नीचे autoscroll। यदि उपयोगकर्ता कभी भी अंत में I5 नीचे स्क्रॉल करने का प्रयास करता है, तो आप उन्हें पहले I5 I1 जोड़ी पर वापस ऑटोस्क्रॉल कर सकते हैं। यदि आप एनीमेशन के बिना स्क्रॉल करते हैं, और सही ऊंचाई पर, यह दिखाई देगा कि छवियां अंतहीन हैं।

मुझे यकीन नहीं है कि यह बहुत उत्तरदायी होगा, लेकिन यह उस प्रभाव को दे सकता है जिसके लिए आप देख रहे हैं।

+0

यह मेरे ऐप्स में से एक में काफी कुछ है। यह बढ़िया काम करता है। –

+3

यदि आप निरंतर रहने के दृष्टिकोण की आवश्यकता है तो यह काम नहीं करता है। जब तक आप किसी विशिष्ट गति के साथ कहीं स्क्रॉल नहीं कर सकते। – Dimitris

+0

यह समाधान पेजिंग सक्षम के साथ ठीक काम करता है। – redent84

2

एहसास करने की मुख्य बात यह है कि एक यूआईएसक्रॉल व्यू इसे फिर से तैयार करने के बारे में बहुत बुद्धिमान है।

आप विचारों है कि स्क्रीन के लिए कदम नहीं है या परिवर्तन पर दिखाई दे रहे हैं के रूप में चारों ओर और जब तक अपने subviews स्थानांतरित कर सकते हैं, वहाँ कोई redraw है। आप किसी भी ऑफस्क्रीन सबव्यू के फ्रेम को रीसेट कर सकते हैं (और यदि आवश्यक हो तो सामग्री ऑफसेट को समायोजित करें)।

बेशक, पेजिंग सक्षम होने से यह बहुत आसान हो जाता है लेकिन मुझे यकीन है कि आप इसे भी स्क्रॉल से कर सकते हैं।

आप उत्पन्न करनी चाहिए अपने 5 बार देखा गया subviews के रूप में उन्हें जोड़ सकते हैं और सेट पाँच के केंद्र के लिए स्क्रॉल देखने की ऑफसेट। ScrollView स्क्रॉल के रूप में, फिर आप चारों ओर सबव्यूव्स स्विच कर सकते हैं - जैसे राउंड रॉबिन। सबव्यू को हटाने और पुनः जोड़ने की कोई आवश्यकता नहीं है, आप बस फ्रेम को रीसेट कर सकते हैं।

यह (एक सरल स्तर पर) है कि कैसे एक UITableView भी काम करता है - यह सेल विचारों का एक छोटा सेट पुनः उपयोग कर लेता और सामग्री ऑफसेट को रीसेट रहता है।