La question est telle qu'elle est indiquée dans le titre.
Scénario : la cellule tableview actuelle est composée de trois vues et est ajoutée à cell.contentView. Lors de l'actualisation, il me suffit d'actualiser le contenu dans une seule vue de l'une des cellules.
Mais lorsque la méthode d'actualisation de la cellule est exécutée, les trois vues sont actualisées ensemble, ce qui fait clignoter la vue avec les données inchangées.
Comment optimiser ce scénario ?
Si vous utilisez
self.tableView reloadRowsAtIndexPaths: withRowAnimation:
刷新会闪,考虑是否是 布局改变了,检测下layoutSubviews
, ou recréez la vue, cette vue est relativement coûteuse, optimisez les FPS et la hauteur des cellules de cacheest ce qu'on appelle
reloadRowsAtIndexPaths
pour mettre en œuvre le rafraîchissement. Lorsque layoutSubviews est appelé lors de l’actualisation, la mise en page ne change pas. Je définis initialement la disposition de la vue et actualise la valeur du contrôle passé dans le modèle.Une optimisation du rendu asynchrone a été effectuée et la hauteur de chaque cellule est fixe.
Vous devez le contrôler via la source de données. Ne pensez pas uniquement à la vue. Les données sont liées à la réutilisation des cellules.