Éviter d'animation de UICollectionView après reloadItemsAtIndexPaths
UICollectionView animer des articles après reloadItemsAtIndexPaths est appelé (animation de fondu).
Est-il un moyen pour éviter cette animation?
iOS 6
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également essayer ceci:
...
Edit:
J'ai trouvé aussi que si vous enveloppez
performBatchUpdates
dans une UIView bloc d'animation, le UIView l'animation est utilisée au lieu de l'animation par défaut, de sorte que vous pouvez simplement mettre de l'animation de la durée à 0, comme suit:C'est extra cool si vous souhaitez utiliser iOS 7 élastique animations pendant les insertions et les suppressions!
performBatchUpdates
à l'intérieur deanimateWithDuration
est génial! Merci pour l'astuce!Il est intéressant de noter que si vous ciblez iOS 7 et ci-dessus, vous pouvez utiliser la nouvelle
UIView
méthodeperformWithoutAnimation:
. Je soupçonne que sous le capot, c'est de faire un peu la même que d'autres réponses ici (en désactivant temporairement laUIView
animations /Core Animation d'actions), mais la syntaxe est agréable et propre.Donc, pour cette question en particulier...
Objective-C:
Swift:
Bien sûr, ce principe peut être appliqué à n'importe quelle situation que vous voulez vous assurer qu'un changement est pas d'animation.
Je suppose que vous êtes à l'aide d'un FlowLayout. Puisque vous essayez de vous débarrasser de l'animation de fondu, essayez ceci:
C'est une très vieille question, de sorte que vous n'êtes probablement pas le ciblage de l'iOS 6 plus. Personnellement, j'ai été travailler sur tvOS 11 ans et a eu la même question, c'est donc ici, pour quelqu'un qui vient avec le même problème.
J'ai écrit un catégorie UICollectionView de le faire. Le truc, c'est de désactiver toutes les animations tout rechargement:
CATransaction.setDisableActions(true)
comme une abréviation pour cela.Ici est une Swift 3 version à
performBatchUpdates
sans animation d'unUICollectionView
. J'ai trouvé que c'était mieux pour moi quecollectionView.reloadData()
, car il réduit la cellule de permutation lorsque les enregistrements ont été insérés.Juste pour ajouter mon de 0,02$, j'ai essayé les deux versions de la réponse choisie, et d'une façon originale, travaillé en de mieux pour mes fins. Je suis en train de travailler sur une infinité de défilement de l'affichage du calendrier qui permet à l'utilisateur de saisir le calendrier au cours d'une semaine donnée, puis de glisser d'avant en arrière et sélectionner individuellement les jours pour le filtrage d'une liste.
Dans ma mise en œuvre, afin de garder les choses performant sur les appareils plus anciens, le tableau des dates qui représentent la vue de calendrier doit être maintenu relativement faible, ce qui implique la tenue d'environ 5 semaines de dates, avec l'utilisateur dans le milieu lors de la 3e semaine. Le problème avec l'aide de la seconde approche, il y a une deuxième étape où vous devez faire défiler l'affichage de la collection du moyen sans une animation, ce qui en fait un très irréguliers apparence depuis quelques raison du blocage de la base de l'animation.
Mon Code: