2012-12-19 14 views
7

ओएस एक्स में विचारों के बीच स्वाइपिंग को लागू करने का सबसे अच्छा तरीका क्या है? इन विचारों को उनके दृश्य नियंत्रकों के साथ nibs से प्रारंभ किया गया है और वे एक ही कक्षा प्रकार हैं। कुछ पृष्ठभूमि देने के लिए, प्रत्येक दृश्य वर्तमान दिनांक के लिए प्रासंगिक डेटा प्रदर्शित करता है।ओएस एक्स में विचारों के बीच स्वाइपिंग को लागू करने का सबसे अच्छा तरीका क्या है?

मैं एक ऐसा फ़ंक्शन बनाना चाहता हूं जो अगली (या पिछली) तिथि के लिए डेटा लोड करता हो। मैं बस डेटा को वर्तमान दृश्य में लोड कर सकता हूं, लेकिन क्या मैं इसे एनीमेशन के साथ कर सकता हूं जो ओएस एक्स में रिक्त स्थान के बीच स्वाइप करने जैसा है? मुझे कल्पना है कि मुझे एक नया दृश्य शुरू करना होगा, वहां डेटा लोड करना होगा, और फिर नए दृश्य में स्वाइपिंग संक्रमण शुरू करना होगा।

मुझे चिंता है कि इन सभी नए विचारों को बनाने का प्रदर्शन बहुत खराब होगा। यहां कुछ विकल्प दिए गए हैं जिन्हें मैंने संबोधित किया है:

  • MYViewController में NSDate का शब्दकोश बनाएं। इस हैशप से प्रत्येक दृश्य को लोड और स्टोर करें, लेकिन इसमें बहुत मेमोरी लग सकती है।
  • MYViewController की एक दोगुनी-लिंक्ड सूची बनाएं और क्रमशः दिनांकित दृश्य लोड/स्टोर करें। यह संभावित रूप से बहुत सारी मेमोरी ले सकता है और यदि उपयोगकर्ता किसी तारीख को कूदता है, तो कैशिंग को मिटा दिया जाएगा।

कोई विचार? यदि वर्तमान दृश्य में डेटा लोड करने का कोई तरीका है, तो मुझे लगता है कि यह सबसे अच्छा विकल्प होगा।

धन्यवाद!

+0

क्या आपने अपने व्यू कंट्रोलर के केवल दो उदाहरणों का उपयोग करने पर विचार किया है? एक स्क्रीन को बंद करने वाला डेटा प्रदर्शित करता है और एक स्क्रीन पर चल रहे डेटा को प्रदर्शित करता है? यह UITableView में कोशिकाओं का पुन: उपयोग करने के समान होगा। –

+0

मुझे लगता है कि मैं यह कर सकता था। तो मैं सिर्फ दो दृश्य नियंत्रकों के बीच स्वैपिंग रख सकता था? इसके साथ मेरा एकमात्र आरक्षण यह है कि मेरे पास व्यू कंट्रोलर के अन्य संदर्भ हैं। तो मुझे ट्रैक रखना होगा कि कौन सा चालू है या कुछ? क्या आपके पास इसका उदाहरण है कि यह कैसे किया जा सकता है? –

+0

ठीक है, तो मुझे लगता है कि मैं [इस] के साथ कुछ लागू करने जा रहा हूं (http://liberatiluca.com/blog/2011/08/03/how-uitableview-reuses-cells/)। मेरे कार्यान्वयन में ESViewCache UITableView के समान होगा और ESViewCacheCell UITableviewCell के समान होगा। ऐसा करने से पहले हालांकि मैं यह देखने जा रहा हूं कि क्या मैं केवल एनएसटीबल व्यू को उपclass कर सकता हूं और इसे वर्तमान "ESViewCacheCell" प्रदर्शित कर सकता हूं। –

उत्तर

0

क्या आपने बस UIScrollView का उपयोग करके बस एक विचार किया है और सभी विचारों को प्रबंधित करने के लिए एक UIViewController है?

http://www.raywenderlich.com/10518/how-to-use-uiscrollview-to-scroll-and-zoom-content

वैकल्पिक रूप से, आप क्षैतिज तालिका दृश्य का उपयोग कर संभवतः पर विचार किया है: यहाँ रे Wenderlich की साइट से एक अच्छा ट्यूटोरियल UIScrollView पर है?

https://github.com/TheVole/HorizontalTable

संपादित

क्षमा करें, मैं जल्दी से अपने प्रश्न पढ़ सकते हैं और माना जाता है कि यह iOS के लिए था ...

: यहाँ एक तीसरी पार्टी के कार्यान्वयन, जो मैं अन्य अतः पदों पर की सिफारिश की देखा गया है

मुझे लगता है कि आप NSCollectionView की तरह कुछ शायद की तलाश में हो सकता है (यकीन नहीं अगर यह एक क्षैतिज ढंग से छिपा विचारों में अच्छी तरह से है या नहीं का समर्थन करेगा ...?)

यहाँ यह पर डॉक्स है:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSCollectionView_Class/Introduction/Introduction.html

यहाँ यह पर एक ट्यूटोरियल है:

http://andrehoffmann.wordpress.com/2009/08/29/nscollectionview-tutorial-for-dummies-xcode-3-1-3/

(ईमानदारी से ज्यादा OSX विकास नहीं किया है, इसलिए विशेषज्ञता के अपने क्षेत्र से बाहर एक सा यहां ... मैं आपको शुभकामनाएं देता हूं!)

+0

मैंने UIScrollView माना है, लेकिन मुझे नहीं लगता कि यह मेरे मामले के लिए उपयुक्त है। इस कार्यान्वयन के लिए सही संख्या में विचारों की आवश्यकता है? मेरे कार्यक्रम में प्रत्येक दृश्य चयनित दिन से मेल खाता है इसलिए तकनीकी रूप से असीमित दृश्य हैं। क्षैतिज तालिका कुछ हद तक लगता है जो मैं चाहता हूं। क्या आप किसी भी ओएस एक्स कार्यान्वयन के बारे में जानते हैं? अन्यथा मैं शायद इसे मॉडल के रूप में उपयोग कर सकता हूं और इसे स्वयं लागू कर सकता हूं। –

+0

मैं अपने कार्यान्वयन में एक क्षैतिज तालिका की अवधारणा के बाद समाप्त हुआ और ऐसा लगता है कि यह काम कर रहा है। आप एक वीडियो डाउनलोड कर सकते हैं [यहां] (https://dl.dropbox.com/u/345040/Screen%20Recording%202.mov)। जब मैं इसे थोड़ा पॉलिश करता हूं तो मैं शायद कोड पोस्ट करूंगा। क्या कोई जानता है कि स्क्रॉलर के दौरान उस भूरे रंग की चीजों से कैसे छुटकारा पाना है? एनिमेशन के दौरान विभाजक या विभाजक भी जोड़ना संभव है? शायद मुझे एक और सवाल पूछना चाहिए .. –

0

कोको दृश्य संक्रमण एनीमेशन एक आसान बात नहीं है। दृश्य नियंत्रक प्रबंधन की तुलना में यह अधिक जटिल कोडिंग है।

आपको वांछित प्रभावों को प्राप्त करने का निर्णय लेने की आवश्यकता है।इस दस्तावेज़ और अन्य संदर्भों को देखें: Animation Programming Guide for Cocoa

मैंने कुछ महीने पहले इसी तरह के काम किया था। मेरा अंतिम संकल्प सिंगल व्यू का उपयोग कर रहा था और ग्राफिक्स एपीआई (छवि ड्राइंग) के साथ केवल एनीमेशन प्रभाव दिखा रहा था क्योंकि यह कोर एनीमेशन से अधिक सरल था।

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

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