2012-10-04 19 views
5

[tableView reloadData] आईओएस में परफॉर्मेंस को प्रभावित करता है? [tableView reloadData] क्या है? यह तालिकादृश्य को फिर से लोड कैसे कर रहा है? क्या टेबलव्यू पुनः लोड करने का कोई और तरीका है?आईओएस: [tableView reloadData]

मैं तालिकादृश्य के अंत में कुछ पंक्तियां जोड़ना चाहता हूं। मैं यह कैसे कर सकता हूँ?

क्या

[self.tableView reloadData] 

और

[self.tableView beginUpdates]; 
[self.tableView insertRowsAtIndexPaths:insertIndexPathswithRowAnimation:UITableViewRowAnimationAutomatic]; 
[self.tableView endUpdates]; 
+2

यह सब अच्छी तरह से [मानक स्थानों] में प्रलेखित है (http://developer.apple.com/library/ios/# प्रलेखन/UserExperience/वैचारिक/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html # // apple_ref/doc/यूआईडी/TP40007451-CH10-SW1)। –

+0

सेब दस्तावेज़ों के माध्यम से जाएं: https://developer.apple.com/documentation/uikit/uitableview –

उत्तर

3

के बीच अंतर है reloadData सिर्फ इतना है कि है - तालिका दृश्य (के दृश्य भाग) की एक पूरी अद्यतन।

यदि आपको केवल कुछ सेल अपडेट करने की आवश्यकता है, यानी अद्यतन करें, डालें, हटाएं या स्थानांतरित करें, इसके बजाय उचित अद्यतन विधियों का उपयोग करें। यह परिवर्तनों को भी एनिमेट करेगा।

1

AFAIK, [self.tableView reloadData] प्रयोग किया जाता है और अधिक के लिए यदि आपके डेटा पूरी तरह से बदल गया है और आप नवीनतम संस्करण प्रदर्शित करना चाहते हैं (या शायद फिल्टर बदल गया है आदि ...)

यानी कल्पना कीजिए कि आप है फुटबॉल खिलाड़ियों को दिखाते हुए एक टेबल और आप एक अलग टीम से फुटबॉल खिलाड़ियों को दिखाने के लिए "एक स्विच फ्लिक करें"। इस मामले में आप reloadData का उपयोग करना चाहते हैं। फिर यह पूरी तालिका को ताज़ा कर देगा।

[self.tableView beginUpdates]; 
[self.tableView insertRowsAtIndexPaths:insertIndexPathswithRowAnimation:UITableViewRowAnimationAutomatic]; 
[self.tableView endUpdates]; 

का उपयोग डेटा के वर्तमान सेट में नए डेटा को जोड़ने के लिए किया जाता है। यह पूरे रीफ्रेश नहीं करेगा लेकिन नई पंक्ति को वर्तमान तालिका में एनिमेट करेगा।

1

यदि आप एक सेक्शन या कुछ पंक्तियों को फिर से लोड करना चाहते हैं, तो ऐसा करने के तरीके भी हैं।

पंक्तियों के लिए:

[self.tableView reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation]; 

वर्गों के लिए:

[self.tableView reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation]; 
संबंधित मुद्दे