Il se pourrait que le calcul de l'altitude soit en retard. L'ordre d'affichage de tableView est approximativement : Demande sectionNumber et numberForSection 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 :
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 :