2017-09-01 1 views
0

Cela fait maintenant quelques heures que je travaille dessus, et je n'arrive pas à obtenir le comportement souhaité de mon UIScrollView en tant que vue secondaire. J'ai une vue secondaire nommée newDogView qui contient 3 vues de pile. J'ajoute newDogView et configure ses contraintes en code.Problèmes avec UIScrollView en tant que vue secondaire

Mon intention est de présenter newDogView (qui est 960x320) comme une plus petite vue (320x320) avec la possibilité de faire défiler horizontalement. Le résultat actuel est que la vue est ajoutée, mais elle reste 960x320. Je pense que la confusion vient soit des vues de la pile, soit du fait qu'il s'agit d'une vue secondaire, et non du contrôleur de vue.

Voici le code correspondant:

override func viewWillLayoutSubviews() { 
    newDogView.translatesAutoresizingMaskIntoConstraints = false 
    newDogScrollView.translatesAutoresizingMaskIntoConstraints = false 
    newDogScrollView.heightAnchor.constraint(equalToConstant: 320.0).isActive = true 
    newDogScrollView.widthAnchor.constraint(equalToConstant: 960.0).isActive = true 
    newDogScrollView.contentSize = CGSize(width: 320, height: 320) 
    newDogView.heightAnchor.constraint(equalToConstant: 320.0).isActive = true 
    newDogView.widthAnchor.constraint(equalToConstant: 320.0).isActive = true 
    newDogView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 
    newDogView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true 
} 

Je ne savais pas si je devais régler la hauteur et la largeur de newDogView.

Voici ma hiérarchie d'affichage actuelle et l'avertissement:

Here is my view hierarchy and warning.

Voici mon story-board actuelle:

Here is my storyboard.

Je contraintes épinglés à tous côtés sur la Content View et la Scroll View .

Voici ce que les vues regardent actuellement comme sur mon iPhone: iphone photo

+0

Si vous réglez la hauteur et la largeur, alors quel est le comportement? – 3stud1ant3

+0

Vous devez vous assurer que vous avez des contraintes pour implicitement ou explicitement définir la taille de la vue de défilement et vous devez définir la propriété de taille de contenu de la vue défilante afin que le contenu puisse être dimensionné correctement. – Paulw11

+0

@ Paulw11 s'il vous plaît voir mon code mis à jour et les modifications. –

Répondre

0

Essayez de changer la taille du contenu de

CGSize(width: 320, height: 320) 

à

CGSize(width: 960, height: 320) 

et aussi changer

newDogView.widthAnchor.constraint(equalToConstant: 960.0).isActive = true 

à

newDogView.widthAnchor.constraint(equalToConstant: 320.0).isActive = true 
+1

Il semble bien que UIScrollViews est difficile à obtenir. Il me semble que la largeur de la vue devrait être ce que vous voulez que la fenêtre visible soit. et la taille du contenu doit correspondre à la largeur/hauteur totale du contenu à l'intérieur de la vue déroulante. Soigné! Merci de votre aide. –

+0

@CodyPotter oui vous l'avez bien compris et vous êtes toujours les bienvenus, acclamations – 3stud1ant3