लिटिल संशोधन के बारे में beginUpdates, endUpdates and reloadData
beginUpdates:: विधि की एक श्रृंखला कॉल डालने, हटाने, या चयन पंक्तियों और तालिका दृश्य के वर्गों शुरू होता है। यदि आप बाद में सम्मिलन, हटाना, और चयन संचालन चाहते हैं (उदाहरण के लिए, cellForRowAtIndexPath: और indexPathsForVisibleRows) को एनिमेटेड होने के लिए इस विधि को कॉल करें। सेल के पुनः लोड किए बिना पंक्ति ऊंचाई में परिवर्तन को एनिमेट करने के लिए आप एंडअपडेट्स विधि के बाद इस विधि का भी उपयोग कर सकते हैं। विधियों के इस समूह को एंडअपडेट्स के आमंत्रण के साथ निष्कर्ष निकालना चाहिए। इन विधि जोड़े को घोंसला किया जा सकता है। यदि आप इस ब्लॉक के अंदर सम्मिलन, हटाना और चयन कॉल नहीं करते हैं, तो पंक्ति गणना जैसे तालिका गुण अमान्य हो सकते हैं। आपको समूह के भीतर पुनः लोडडेटा नहीं कहना चाहिए; यदि आप समूह के भीतर इस विधि को कॉल करते हैं, तो आपको स्वयं को कोई एनीमेशन करना होगा।
एंडअपडेट्स: पंक्तियों की एक श्रृंखला को शामिल करता है जो तालिका दृश्य के पंक्तियों और खंडों को सम्मिलित, हटाएं, चुनते हैं या फिर से लोड करते हैं। आप इस विधि को स्टार्टअपडेट्स के साथ शुरू होने वाली विधि कॉल की एक श्रृंखला को ब्रैकेट करने के लिए कहते हैं और इसमें तालिका दृश्य के पंक्तियों और अनुभागों को सम्मिलित करने, हटाने, चुनने और पुनः लोड करने के लिए संचालन शामिल हैं। जब आप एंड अपडेट्स को कॉल करते हैं, तो UITableView एक साथ संचालन को एनिमेट करता है। StartUpdates और endUpdates के आमंत्रण घोंसला जा सकते हैं। यदि आप इस ब्लॉक के अंदर सम्मिलन, हटाना और चयन कॉल नहीं करते हैं, तो पंक्ति गणना जैसे टेबल गुण अमान्य हो सकते हैं।
पुनः लोडडाटा: तालिका दृश्य के पंक्तियों और खंडों को फिर से लोड करता है। कक्ष, सेक्शन हेडर और पाद लेख, इंडेक्स सरणी आदि सहित तालिका बनाने के लिए उपयोग किए जाने वाले सभी डेटा को पुनः लोड करने के लिए इस विधि को कॉल करें। दक्षता के लिए, तालिका दृश्य केवल उन पंक्तियों को फिर से प्रदर्शित करता है जो दिखाई दे रहे हैं।यदि रीलोड के परिणामस्वरूप तालिका घट जाती है तो यह ऑफसेट को समायोजित करता है। तालिका दृश्य का प्रतिनिधि या डेटा स्रोत इस विधि को कॉल करता है जब वह तालिका डेटा को पूरी तरह से लोड करने के लिए चाहता है। इसे उन विधियों में नहीं बुलाया जाना चाहिए जो पंक्तियों को सम्मिलित या हटाते हैं, खासकर कॉल के साथ लागू एनीमेशन ब्लॉक के भीतर अद्यतन और एंड अपडेट्स।
अब खोज के मामले में हम नहीं जानते कि कौन-सी पंक्तियां हर बार खोज परिणाम डेटा अलग होगा और साथ ही प्रभावित करने के लिए जा रहे हैं, मेरा मानना है कि एक
[self.tableView beginUpdates];
[self.tableView endUpdates];
इसके लिए प्रयोग किया जाता के रूप में
उपयोग नहीं करना चाहिए जब आप टेबलव्यू पर insert, update or delete
ऑपरेशन कर रहे हैं और आप इसकी indexPath
जानते हैं।
[self.tableView reloadData];
बेहतर उपयोग करें क्योंकि यह केवल तालिका दृश्य में दृश्य पंक्तियों या अनुभाग को अपडेट करेगा। Table Search with UISearchController के लिए ऐप्पल के नमूना कोड को भी देखें, यह reloadData
का उपयोग करने की भी अनुशंसा करता है।
संबंधित परिवर्तन करें और आप जाने के लिए अच्छे हैं।
मुबारक कोडिंग :)
क्या आप पर और के अपने ViewController/नेविगेशन नियंत्रक पर "पारदर्शी" संपत्ति को बदलने की कोशिश? मुझे याद है कि मुझे यह समस्या एक बार थी, और अगर मुझे सही ढंग से "पारदर्शी" याद आया तो इसके साथ कुछ करने के लिए .. – MCMatan