स्वागत करती निम्नलिखित UITableView
उदाहरण विधि का उपयोग करें:
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
आप NSIndexPaths
है कि आप फिर से लोड करना चाहते हैं की एक NSArray
निर्दिष्ट करना होगा। अगर आप बस पुनः लोड करना चाहते हैं। यदि आप केवल एक सेल को फिर से लोड करना चाहते हैं, तो आप NSArray
की आपूर्ति कर सकते हैं जिसमें केवल एक NSIndexPath
है। उदाहरण के लिए:
NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:3 inSection:0];
NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, nil];
[myUITableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];
आप पंक्ति ताज़ा एनिमेट की हर संभव तरीके के लिए UITableViewRowAnimation
enum देख सकते हैं। यदि आप कोई एनीमेशन नहीं चाहते हैं तो आप उदाहरण के रूप में UITableViewRowAnimationNone
मान का उपयोग कर सकते हैं।
विशिष्ट पंक्तियों को फिर से लोड करना आपके द्वारा एनीमेशन प्रभाव को प्राप्त करने से अधिक लाभ होता है। आपको भी एक बड़ा प्रदर्शन बढ़ावा मिलता है क्योंकि केवल उन्हीं कक्षों को जिन्हें आपको वास्तव में पुनः लोड करने की आवश्यकता होती है, उनके डेटा को ताज़ा, पुनर्स्थापित और पुन: खींचा जाता है। आपकी कोशिकाओं की जटिलता के आधार पर, प्रत्येक बार जब आप सेल को रीफ्रेश करते हैं तो काफी ओवरहेड हो सकता है, इसलिए आपके द्वारा किए गए रीफ्रेश की मात्रा को कम करने के लिए एक आवश्यक अनुकूलन है जिसे आप जहां भी संभव हो उपयोग करना चाहिए।
स्रोत
2011-03-24 11:57:48
धन्यवाद! वह वास्तव में मेरी मदद करता है! – madmax
कोई समस्या नहीं! मैं खुशी से मदद कर सकता है। :) –
नए वाक्यविन्यास के साथ आप निम्न कार्य भी कर सकते हैं: [UITableView reloadRowsAtIndexPaths: @ [indexPath] withRowAnimation: UITableViewRowAnimationNone]; – bbrame