9
votes

UitailView beginumdates / endupdates rappel

Je passe des modifications à une vue de table à l'aide d'un bloc BeginUpdates / endupdates. Tout au long de la façon dont j'ai besoin de mettre à jour une ombre portée de manière à ce qu'il reflète la composition actuelle de la visualisation de la TableView.

J'ai essayé de configurer KVO pour le contenu de la TableView's's ContintSize mais il est appelé uniquement sur endupdates , une fois l'animation terminée. Ce que je veux, c'est que cela soit appelé chaque fois contenu changements (même s'il s'agit uniquement d'un pixel). Y a-t-il un moyen d'y parvenir?


0 commentaires

3 Réponses :


0
votes

Désolé de dire, je ne pense pas que vous puissiez faire cela. Lorsque vous apportez des modifications à la table en après BeginUpdates a été appelée les modifications sont animées comme une animation unique après endupdates . Il n'y a pas de rappels d'animation lors de ces animations. Je n'ai pas essayé ceci alors ne sais pas si cela fonctionnerait bien pour cela, mais vous pouvez essayer de nidifier beginumdates et endupdates et mettre à jour votre ombre après chaque endupdates .


2 commentaires

Juste FYI: Les invocations de DébutUpdates et de EndUpdates peuvent être imbriquées. Si vous ne faites pas d'insertion, de suppression et d'appels de sélection à l'intérieur de ce bloc, les attributs de table tels que le nombre de lignes peuvent devenir invalides.


Avez-vous un exemple de la manière dont les appels imbriqués devraient être utilisés?



24
votes

Qu'en est-il de cela? XXX


1 commentaires

Wow! Cela fonctionne presque, mais il y a un délai entre la visualisation de la vue Vue d'ensemble des mises à jour et le bloc d'achèvement en cours d'exécution. Pour l'instant, je vais l'utiliser. Merci.



2
votes

La méthode de Rudolf n'a pas fonctionné pour moi aussi lisse que prévu. Dans mon cas, je sélectionne une rangée sur utableview code> en utilisant ceci, et la méthode de Rudolf a permis à la table de faire deux animations avec un petit gel: l'animation à l'intérieur de Begeldate / endupdates, un petit gel et l'animation sur Le bloc d'achèvement.

[UIView animateWithDuration:0.0 animations:^{
    [tableView beginUpdates];
    // do something to the table
    [tableView endUpdates];
} completion:^(BOOL finished) {
    // Code to run when table updates are complete.
}];


0 commentaires