मैं कर रहा हूँ इस तरह UITableView में कुछ पंक्तियां हटाना:हटा सकते हैं और फिर से लोड UITableView कोशिकाओं
[tableView deleteRowsAtIndexPaths:toDelete withRowAnimation:UITableViewRowAnimationAutomatic];
इसे हटाना आपरेशन के लिए एक अच्छा एनीमेशन कहते हैं।
हालांकि, हटाने के बाद मुझे वर्तमान में दिखाई देने वाली सभी पंक्तियों को अपडेट करने की आवश्यकता है।
[tableView reloadData];
सही पहली कॉल काम करता है के बाद कॉलिंग, लेकिन अच्छा एनीमेशन प्रभाव चला गया है। ऐसा करने का एक बेहतर तरीका क्या है? यानी, हटाए गए ऑपरेशन को एनिमेट करने के लिए, और वर्तमान में सभी दृश्यमान पंक्तियों को अपडेट करें? धन्यवाद!
मुझे ऐसा करने की आवश्यकता क्यों है क्योंकि प्रत्येक सेल में 'चेकबॉक्स' होता है। मेरा व्यू कंट्रोलर चेकबॉक्स का प्रतिनिधि है और प्रत्येक चेकबॉक्स में इसके साथ जुड़े एनएसआईएंडएक्सपैथ हैं। जब चेकबॉक्स को टॉगल किया जाता है, तो प्रतिनिधि को यह कहकर कहा जाता है कि हम एक्स इंडेक्स पथ के लिए टॉगल किए गए हैं। अब, अगर कुछ पंक्तियां हटा दी जाती हैं, तो सूचकांक पथ को अद्यतन करने की आवश्यकता होती है। यही कारण है कि मुझे सब कुछ पुनः लोड करने की आवश्यकता है ताकि प्रत्येक चेकबॉक्स जानता हो कि यह कहां से संबंधित है।
आपको हटाने के बाद पुनः लोड करने की आवश्यकता क्यों है? (क्या आप DeleteRowsAtIndexPaths को कॉल करने से पहले डेटा स्रोत से पंक्ति को हटा नहीं सकते हैं, या कुछ और महत्वपूर्ण चल रहा है?) –
मुझे याद नहीं है कि यह काम करता है, लेकिन क्या आपने मॉडल-स्तरीय डिलीट करने की कोशिश की है, और फिर बस एक '[UIView एनिमेट विथ अवधि ...]' ब्लॉक में 'reloadData' रैपिंग? –
@ मिडपार्का मैं अपने प्रश्न को बता दूंगा कि मुझे ऐसा करने की ज़रूरत क्यों है। – 0xSina