ओएस एक्स में विचारों के बीच स्वाइपिंग को लागू करने का सबसे अच्छा तरीका क्या है? इन विचारों को उनके दृश्य नियंत्रकों के साथ nibs से प्रारंभ किया गया है और वे एक ही कक्षा प्रकार हैं। कुछ पृष्ठभूमि देने के लिए, प्रत्येक दृश्य वर्तमान दिनांक के लिए प्रासंगिक डेटा प्रदर्शित करता है।ओएस एक्स में विचारों के बीच स्वाइपिंग को लागू करने का सबसे अच्छा तरीका क्या है?
मैं एक ऐसा फ़ंक्शन बनाना चाहता हूं जो अगली (या पिछली) तिथि के लिए डेटा लोड करता हो। मैं बस डेटा को वर्तमान दृश्य में लोड कर सकता हूं, लेकिन क्या मैं इसे एनीमेशन के साथ कर सकता हूं जो ओएस एक्स में रिक्त स्थान के बीच स्वाइप करने जैसा है? मुझे कल्पना है कि मुझे एक नया दृश्य शुरू करना होगा, वहां डेटा लोड करना होगा, और फिर नए दृश्य में स्वाइपिंग संक्रमण शुरू करना होगा।
मुझे चिंता है कि इन सभी नए विचारों को बनाने का प्रदर्शन बहुत खराब होगा। यहां कुछ विकल्प दिए गए हैं जिन्हें मैंने संबोधित किया है:
- MYViewController में NSDate का शब्दकोश बनाएं। इस हैशप से प्रत्येक दृश्य को लोड और स्टोर करें, लेकिन इसमें बहुत मेमोरी लग सकती है।
- MYViewController की एक दोगुनी-लिंक्ड सूची बनाएं और क्रमशः दिनांकित दृश्य लोड/स्टोर करें। यह संभावित रूप से बहुत सारी मेमोरी ले सकता है और यदि उपयोगकर्ता किसी तारीख को कूदता है, तो कैशिंग को मिटा दिया जाएगा।
कोई विचार? यदि वर्तमान दृश्य में डेटा लोड करने का कोई तरीका है, तो मुझे लगता है कि यह सबसे अच्छा विकल्प होगा।
धन्यवाद!
क्या आपने अपने व्यू कंट्रोलर के केवल दो उदाहरणों का उपयोग करने पर विचार किया है? एक स्क्रीन को बंद करने वाला डेटा प्रदर्शित करता है और एक स्क्रीन पर चल रहे डेटा को प्रदर्शित करता है? यह UITableView में कोशिकाओं का पुन: उपयोग करने के समान होगा। –
मुझे लगता है कि मैं यह कर सकता था। तो मैं सिर्फ दो दृश्य नियंत्रकों के बीच स्वैपिंग रख सकता था? इसके साथ मेरा एकमात्र आरक्षण यह है कि मेरे पास व्यू कंट्रोलर के अन्य संदर्भ हैं। तो मुझे ट्रैक रखना होगा कि कौन सा चालू है या कुछ? क्या आपके पास इसका उदाहरण है कि यह कैसे किया जा सकता है? –
ठीक है, तो मुझे लगता है कि मैं [इस] के साथ कुछ लागू करने जा रहा हूं (http://liberatiluca.com/blog/2011/08/03/how-uitableview-reuses-cells/)। मेरे कार्यान्वयन में ESViewCache UITableView के समान होगा और ESViewCacheCell UITableviewCell के समान होगा। ऐसा करने से पहले हालांकि मैं यह देखने जा रहा हूं कि क्या मैं केवल एनएसटीबल व्यू को उपclass कर सकता हूं और इसे वर्तमान "ESViewCacheCell" प्रदर्शित कर सकता हूं। –