UITableView add cell Animation

¿ UITableView puede ayudarme con el problema UITableView ?

De forma pnetworkingeterminada, tenemos animation para eliminar células y reorderar células en UITableView .

¿Podemos animar la adición de celda, si es así cómo hacerlo?

He comprobado Three20 , no entendí cómo twitter ha hecho que la tabla expanda la animation en MyProfile> ReTweets .

Quiere probarlo sin Three20 frameowrk, utilizando la animation existente en UITableView .

Puede usar el siguiente método UITableView:

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

Ejemplo con self.dataSource siendo una matriz mutable y su tabla solo tiene 1 sección:

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

Nota: Restar 1 del recuento de fonts de datos ya que NSIndexPath no está indexado.

Rápido

Matriz de ejemplo que es el origen de datos para la vista de tabla

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

Lo siguiente agregará una fila con animation en la parte superior de la vista de la tabla.

 // add message 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) 

Múltiples actualizaciones

Si necesita hacer varias inserciones y / o eliminaciones, beginUpdates() con beginUpdates() y endUpdates() .

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

Otras lecturas

  • Documentación

Use reloadRowsAtIndexPaths: indexPath

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

Espero que esto ayude..