2010-06-26 24 views
28

क्या कोई मुझे UITableView एनिमेटिंग समस्या से बाहर करने में मदद कर सकता है?UITableView सेल एनीमेशन जोड़ें

डिफ़ॉल्ट रूप से हम UITableView में सेल को हटाने और कोशिकाओं को पुन: क्रम के लिए एनीमेशन की है।

हम, सेल जोड़ने यदि ऐसा है तो यह कैसे करना है एनिमेटेड हो सकता है।

मैं three20 बाहर जाँच कर ली है, नहीं नहीं था कैसे twitter तालिका MyProfile> रीट्वीट तहत एनीमेशन का विस्तार किया है।

UITableView में मौजूदा एनीमेशन का उपयोग कर Three20 frameowrk, बिना यह कोशिश करना चाहते हैं।

[self.dataSource addObject:@"New Item"]; 
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:[self.dataSource count]-1 inSection:0]; 
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 

नोट:: डेटा स्रोत गिनती से घटाया 1 self.dataSource एक परिवर्तनशील सरणी जा रहा है और अपनी मेज केवल 1 अनुभाग होने के साथ

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation 

उदाहरण:

उत्तर

60

आप निम्न UITableView विधि का उपयोग कर सकते हैं चूंकि NSIndexPath शून्य अनुक्रमित है।

+0

कोड के लिए धन्यवाद, क्या आप मुझे एक कामकाजी नमूना दे सकते हैं? o मैं सम्मिलन करते समय डेटा स्रोत को अपडेट करने के तरीके से थोड़ा उलझन में हूं। – Ameya

+0

पहले मैं डेटा स्रोत (एनएसएमयूटेबलएरे) में रिकॉर्ड जोड़ रहा था और [self.tableView reloadData] को कॉल कर रहा था; लेकिन वह एनिमेटेड रूप से नए तत्व को नहीं लाएगा। – Ameya

+1

सिर्फ उर कोड @JK plz अपने जवाब को संपादित में एक छोटा सा परिवर्तन, आशा है कि यह कुछ एक ही समाधान इस तरह की तलाश में मदद करता है। [tableView insertRowsAtIndexPaths: [NSArray arrayWithObjects: [NSIndexPath indexPathForRow: [स्व।डेटा स्रोत गिनती] inSection: 0], शून्य] withRowAnimation: UITableViewRowAnimationRight]; – Ameya

10

स्विफ्ट

उदाहरण सरणी तालिका दृश्य

var myArray = ["Cow", "Camel", "Sheep", "Goat"] 

निम्न तालिका दृश्य के शीर्ष पर एनीमेशन के साथ एक पंक्ति जोड़ देगा के लिए डेटा स्रोत है।

// add item to current array 
myArray.insert("Horse", atIndex: 0) 

// insert row in table 
let indexPath = NSIndexPath(forRow: 0, inSection: 0) 
tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade) 

कई अपडेट

आप एक से अधिक सम्मिलन और/या विलोपन करने के लिए फिर उन्हें beginUpdates() और endUpdates() साथ चारों ओर की जरूरत है।

tableView.beginUpdates() 
tableView.insertRowsAtIndexPaths([addIndexPath1, addIndexPath2, ...], withRowAnimation: .Fade) 
tableView.deleteRowsAtIndexPaths([deleteIndexPath1, deleteIndexPath2, ...], withRowAnimation: .Fade) 
tableView.endUpdates() 

आगे पढ़ने

+1

मैं पंक्तियों को सम्मिलित करने के लिए अपने कोड का उपयोग कर रहा हूं, हालांकि मुझे लगता है कि एनीमेशन प्रकार मैं इसे हमेशा किस तरह से एनिमेट करता हूं (यानी फीका, बॉटम, बाएं, सभी का एक ही व्यवहार होता है) । कोई विचार क्यों ऐसा होता है? –

+0

@ जॉर्ज एग्गोस्टिस, मैंने थोड़ी देर के लिए इस पर काम नहीं किया है, इसलिए मुझे नहीं पता। मैं इसे जांचने के लिए अपनी चीजों की सूची में डाल दूंगा, लेकिन मुझे थोड़ी देर तक यह नहीं मिल सकता है। यदि आप इसे पहले समझते हैं, तो कृपया एक और टिप्पणी छोड़ दें। – Suragch

0

उपयोग reloadRowsAtIndexPaths: indexPath

tableView.beginUpdates() 
    [tableView reloadRowsAtIndexPaths:indexPath withRowAnimation:UITableViewRowAnimationAutomatic]; 
    tableView.endUpdates() 

मैं इस तुम्हारी मदद करेगा उम्मीद है ..

संबंधित मुद्दे