0
votes

Rechargement de la section TableView après chaque seconde causant des scintiles

J'essaie de recharger ma tableView avec une nouvelle source de données chaque seconde, mais il existe un léger scintillement dans le rechargement qui est clairement visible pour l'utilisateur.

Mon exigence de rafraîchissement de la date de données est parce que je Obtenez la nouvelle servertime de l'API après chaque seconde. strong> p>

J'ai utilisé différentes méthodes pour recharger mes 3 sections de ma tableView, mais semble maintenant donner une expérience sans scintillement. p>

Méthode 1 strong> p> xxx pré>

Méthode 2 strong> p>

      UIView.setAnimationsEnabled(false)
      weakSelf.tradeTableView.beginUpdates()
      weakSelf.tradeTableView.reloadSections([0,1,2], with: .none)
      weakSelf.tradeTableView.endUpdates()
      UIView.setAnimationsEnabled(true)


10 commentaires

Pourquoi vous devez mettre à jour vos sections chaque seconde?


Comme je l'ai mentionné, que je reçois la Servertime mise à jour du serveur chaque seconde, c'est pourquoi je dois mettre à jour les sections de la TableView pour refléter ces changements.


Si vous n'ajoutez que des données, vous pouvez insérer des lignes au lieu de recharger tout.


Salut Samarth do Essaye TradetableView.layer.removeAllanimations () Inside EffecwithOutanimation Block, je préférerais également utiliser RxSwift pour ce genre de choses car votre type de rechargement de la table sur chaque seconde et qui n'est pas bon, espère que cela aide: p


@Shivamgaur j'ai eu cette suggestion d'utiliser rxswift, pouvez-vous me guider avec cela


@Shivamgaur j'ai eu cette suggestion d'utiliser rxswift, pouvez-vous me guider avec cela


Vos données changent-elles pas chaque seconde aussi? Essayez d'utiliser uniquement des INSERTROWS / DELLESTRESSIONS Spécifiquement pour les éléments qui ont été modifiés et ne rechargez pas entièrement la table entière.


@CTOMATO Comment comprendre les données de la ligne modifiées


@Samarthkejriwal Vous devez lire rxswift si vous souhaitez mettre en œuvre cela efficacement, sur layy Man terment que vous lierez vos données et s'il y a une modification des données, la valeur est modifiée de manière dynamique, vous n'avez pas à recharger, aussi s'il vous plaît passez ci-dessous Link Si vous êtes nouveau à RX - RaywenderLich.com/900 -Engetting-a commencé-à-porter-with-rxswift-and-rxcoc oa aussi j'insisterais pour aller à YouTube et rechercher des tutoriels réactifs Reywenderlich là-bas, cela aiderait :)


@Samarthkejriwal en tant qu'élément visuel de pratique ne doit pas être rafraîchi trop souvent car il crée une mauvaise expérience pour l'utilisateur et ajoute également des frais généraux supplémentaires sur la maintenance et le processeur qui consomme plus de batterie. Quoi qu'il en soit, la plupart des temps, il ne devrait y avoir aucun scintillement lors du rechargement de la cellule car vous n'avez pas partagé de code. Je suppose que vous reconstruisez vos modèles de données à chaque fois et la reconstruction de ces modèles de données prend du temps. Utilisez le profileur de temps pour trouver une cause première exacte


3 Réponses :


0
votes

Est-ce que c'est scintiller ou sauter?

Si le ScrollView saute, cochez ces réponses Saummy TableView après recharge


0 commentaires

0
votes

Ceci celui-ci

            let loc = tradeTableView.contentOffset  // this line is added to lock offset of tableview
            UIView.performWithoutAnimation {
                tradeTableView.beginUpdates()
                tradeTableView.reloadData()
                tradeTableView.endUpdates()

                tradeTableView.layer.removeAllAnimations()
                tradeTableView.setContentOffset(loc, animated: false)
            } 


0 commentaires

0
votes

Vous pouvez essayer ce xxx


0 commentaires