comment puis-je définir la hauteur dynamique de UIScrollView en fonction du contenu/sous-vues que j'ai dans mon ScrollView
Voici ce que je reçois en sortie:
Nous pouvons utiliser la disposition automatique, où nous utilisons une vue de contenu dans scrollview, qui peut être épinglée à scrollview et les contraintes de hauteur et de largeur données égales à la vue principale. Ensuite, si nous voulons que la hauteur varie de manière dynamique, nous pouvons attribuer une faible priorité à la contrainte de hauteur par rapport aux autres. Par conséquent, la hauteur de la vue de contenu augmentera en fonction de sa taille intrinsèque, en raison de ses sous-vues.
Liens de référence:
Vous devez d’abord définir une contrainte de hauteur de sous-vue de 0
, puis calculer la hauteur des données (que vous souhaitez définir dans la sous-vue) et attribuer simplement subview.heightConstraint.constant = data.height
. Vous devez ensuite définir scrollView.contentsize
en fonction de la hauteur de la sous-vue:
self.scrollView.contentSize = CGSize(width: self.scrollView.contentSize.width, height: self.subViewHeight.constant)
pour moi cette astuce a fonctionné (Swift 4)
scrollView.layoutIfNeeded()
scrollView.isScrollEnabled = true
scrollView.contentSize = CGSize(width: self.view.frame.width, height: scrollView.frame.size.height)
Vous devez calculer la hauteur nécessaire pour votre contenu, y compris l'espacement . Attribuez cette valeur à la hauteur de la ligne et actualisez le tableau (ou une partie de celui-ci avec la ligne)