web-dev-qa-db-fra.com

Définition de la hauteur dynamique sur UIScrollView Swift

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:

 enter image description here

5

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:

1) https://developer.Apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithScrollViews.html#//Apple_ref/doc/uid/TP40010853-CH24-SW1

2) https://www.youtube.com/watch?v=6J22gHORk2I

6
Patrick R

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)
4
vaibhav sharma

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)
1
Hattori Hanzō

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)

0
Vincent