La cellule de tableView est ajoutée pour calculer la hauteur de la cellule et appeler la méthode proxy, qui est renvoyée au contrôleur de vue
Lorsque le serveur renvoie la source de données, actualisez la tableView.
Cependant, l'indexPaht de cellForRowIndexPath exécuté à ce moment commence à partir de la quatrième ligne,
Les premières sont ignorées,
J'ai essayé d'écrire la hauteur de la cellule comme une valeur fixe,
Le résultat c'est que le nombre de cellules est normal.
C'est quoi le problème ?
Il se pourrait que le calcul de l'altitude soit en retard.
L'ordre d'affichage de tableView est approximativement :
Demande
sectionNumber
etnumberForSection
pour obtenir le nombre de sections et de cellules.Demande
heightForRow:atIndexPath
pour obtenir la hauteur de la cellule qui sera affichée sur l'interface.demande ensuite à
cellForRow
d'obtenir une instance de cette cellule.Définissez ensuite la hauteur de la cellule, etc. Après la mise en page, appelez les méthodes de rappel telles que
willDisplay
puis affichez-la sur l'interface.Ainsi, lorsque vous actualisez tableView, la partie hauteur doit être traitée en calculant d'abord la hauteur de la cellule en fonction de la source de données au lieu de laisser l'instance de cellule la calculer, puis de rappeler le contrôleur. Bien sûr, vous pouvez également calculer dans la cellule. Par exemple, il existe une méthode de classe dans la cellule, qui est calculée sur la base des données de cellule entrantes, et le contrôleur appelle activement cette méthode. Le code approximatif est le suivant :
Dans la classe d'implémentation déléguée du contrôleur ou de la tableView :
MaTableViewCell :