2011-04-06 3 views
51

Bunun aptalca bir soru gibi gelebileceğini biliyorum, ama her yere baktım. Bunu nasıl yapabilirim?Animasyonlu UITableViewCell Ekle/Sil?

Bunu nasıl bir yazım-salı yöntemi ile yapılacağını biliyorum, ancak bu işlevin dışında nasıl bir kam yapıyorum?

Lütfen bazı kod örneklerini gönderin.

Teşekkürler!
Coulton

cevap

112
[self.tableView beginUpdates]; 
[self.tableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationFade]; 
[self.tableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationFade]; 
[self.tableView endUpdates]; 

insertIndexPaths tablonuza sokulacak NSIndexPaths bir dizidir.

deleteIndexPaths, tablonuzdan silinecek NSIndexPaths dizisidir. endeks yolları için

Örnek dizisi formatı:

NSArray *insertIndexPaths = [[NSArray alloc] initWithObjects: 
     [NSIndexPath indexPathForRow:0 inSection:0], 
     [NSIndexPath indexPathForRow:1 inSection:0], 
     [NSIndexPath indexPathForRow:2 inSection:0], 
     nil]; 
+0

Cevabınız için teşekkürler! Ben bu yöntemi kullandım: \t \t NSArray * insertIndexPaths = [[NSArray ayırma] initWithObjects: [NSIndexPath indexPathForRow: 0 inSection: 0], nil]; \t \t \t [theTableView beginUpdates]; \t \t [theTableView deleteRowsAtIndexPaths: insertIndexPaths withRowAnimation: UITableViewRowAnimationLeft]; \t \t [theTableView endUpdates]; Ama yine de hiçbir şey yapmadı. 'TheTableView' bölümü ile ilgili bir şey olduğunu düşünüyorum. 'Self.tableView' denerken, bana bir yapı ya da birlik olmadığını söylüyor ... teşekkürler! – iosfreak

+0

Görünüm denetleyicinizin UITableViewController alt sınıfına ihtiyacı varsa veya yalnızca UIViewController'ın UITableViewDelegate ve UITableViewDataSource protokollerini kullanması gerekiyorsa. Ardından, arayüz oluşturucuda görünümünüze bir tablo görünümü ekleyin ve temsilci ile dataSource özelliklerini görünüm denetleyicinize bağlayın. – Sabobin

+0

Alt sınıfımı UITableViewDelegate ve DataSource ile UIViewController olarak kullanıyorum (Görünümümdeki UITableView'üme bağlandım). Başka ne yapabilirim? – iosfreak

4

Bu iki yöntem istiyorum: insertRowsAtIndexPaths:withRowAnimation: ve deleteSections:withRowAnimation: Onlar UITableView documentation detaylı hem de.

+0

teşekkürler. İşte yaptığım şey: '\t \t \t [processList removeObjectAtIndex: 0]; \t \t \t [theTableView beginUpdates]; \t \t \t [theTableView deleteRowsAtIndexPaths: 0 withRowAnimation: UITableViewRowAnimationFade]; \t \t \t [theTableView deleteSections: 0 withRowAnimation: UITableViewRowAnimationFade]; \t \t \t [theTableView endUpdates]; 'Ancak hiçbir şey olmuyor. – iosfreak

7

tableView.beginUpdates() 
tableView.deleteRowsAtIndexPaths([YourIndexPathYouWantToDeleteFrom], withRowAnimation: .Fade) 
tableView.insertRowsAtIndexPaths([YourIndexPathYouWantToInsertTo], withRowAnimation: .Fade) 
tableView.endUpdates() 

Swift 2.1+

yılında Ve şöyle kolaylıkla NSIndexPath oluşturabilirsiniz: cevap için

NSIndexPath(forRow: 0, inSection: 0)