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. P>
J'ai essayé de configurer KVO pour le contenu code> de la TableView's's ContintSize code> mais il est appelé uniquement sur endupdates code>, une fois l'animation terminée. Ce que je veux, c'est que cela soit appelé chaque fois contenu code> changements (même s'il s'agit uniquement d'un pixel). Y a-t-il un moyen d'y parvenir? P>
3 Réponses :
Désolé de dire, je ne pense pas que vous puissiez faire cela. Lorsque vous apportez des modifications à la table en après BeginUpdates code> a été appelée les modifications sont animées comme une animation unique après endupdates code>. 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 code> et endupdates code> et mettre à jour votre ombre après chaque endupdates code>. p>
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?
Qu'en est-il de cela?
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.
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.
}];