Recharger la vue de la Table de la cellule d'animation (Swift)
Est-il un moyen pour recharger spécifiques UITableView
cellules avec plusieurs sections avec des animations?
J'ai été en utilisant:
self.TheTableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: UITableViewRowAnimation.Right)
Cette anime toutes les cellules de la section. L'autre option est d'utiliser:
self.TheTableView.reloadRowsAtIndexPaths(<#indexPaths: [AnyObject]#>,
withRowAnimation: <#UITableViewRowAnimation#>)
EDIT:
Après l'utilisation de reloadRowsAtIndexPaths
Résiliation d'application en raison de uncaught exception 'NSInternalInconsistencyException', la raison: 'mise à jour incorrecte: non valides nombre de lignes dans la section 1. Le nombre de lignes contenues dans une section existante après la mise à jour (5) doit être égal au nombre de lignes contenues dans cette section avant la mise à jour (4), plus ou moins le nombre de lignes insérées ou supprimées à partir de cette section (0 inséré, 0 supprimés) et plus ou moins le nombre de lignes déplacées dans ou hors de la section (0 déplacé, 0).'
En essayant de trouver un moyen souple de rechargement d'une tableview en ajoutant des objets dans un tableau.
Appel TheTableView.reloadData() avant reloadRowsAtIndexPaths fonctionne, mais l'animation est glitchy. Est-il une autre approche?
Peut-être que vous devriez jeter un oeil à ce post stackoverflow.com/questions/20987585/...
OriginalL'auteur William Larson | 2015-04-14
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas recharger les cellules directement? Le indexPath contient la section de ligne et il suffit donc de garder une trace de la section que vous souhaitez recharger et de remplir les indices de ce tableau.
Basé sur votre commentaire vous cherchez à changer votre tableau et ont la tableView animer les modifications. Si c'est le cas, vous devriez envisager d'utiliser beginUpdates() et endUpdates() pour UITableViews ou même un NSFetchedResultsController donc il gère l'ensemble de la mise à jour des animations proprement.
Je vous recommande d'utiliser NSFetchedResultsController si vous utilisez la Base de Données car elle simplifie l'ensemble du processus. Sinon, vous avez à gérer les modifications vous-même. En d'autres termes, si votre tableau des modifications, vous devez supprimer manuellement ou insérer des lignes dans la tableview à l'aide de beginUpdates() et endUpdates().
Si vous n'utilisez pas de Base de Données, étude cette à comprendre comment c'est tous manipulés.
Cela pourrait fonctionner, mais j'ai besoin de recharger les données avant que je puisse appeler reloadRowsAtIndexPaths. Je vais le modifier un peu. Peut-être l'appel de ReloadData juste avant que la commande?
Vous ne pouvez pas appeler reloadData si vous êtes désireux d'un chiffon propre animation. Regarder dans beginUpdates() et endUpdates() si vos données sont en train de changer. UITableViewControllers utiliser cela pour rendre les choses beaucoup plus facile (si cela correspond à votre modèle d'application)
Aha Ok merci je vais donner un essai!
J'ai donc essayé ta solution, mais Il ne semble pas à résoudre la panne, peu importe où je place beginUpdates() et endUpdates(). J'ai pratiquement une IBAction qui ajoute des données dans un tableau. qui a aussi besoin de recharger la tableView et animer juste le ajoutée spécifique de la cellule.
OriginalL'auteur Mark McCorkle
Dans Swift 3.0
On peut recharger ligne particulière de la section particulière dans tableview
OriginalL'auteur jaiswal Rajan