Désactiver le Défilement Horizontal de UIScrollView Swift

De Défilement De La Vue

J'ai un UIScrollView, avec des contraintes left: 0, top: 0, right: 0, bottom: 0

À L'Intérieur De Défilement De La Vue

En haut de cette UIScrollView est un UIImageView avec des contraintes left: 0, top: 0, right: 0, height: 200

En dessous de cela, j'ai une UITextView avec des contraintes left: 0, top: 0, right: 0, bottom: 0

Cela signifie que le UITextView redimensionner à l'égard de son contenu, et j'ai mis le scrollingEnabled à false pour la UITextView.

Donc, quand je le lance, il presque fonctionne parfaitement.

Le seul problème est la UIImageView occupe environ 10% de plus que la largeur de l'écran. Par conséquent, le défilement horizontal est activé.

J'ai essayé d'ajouter les lignes

imageView.frame = CGRect(0, 0, screenSize.width, 200)
scrlView.contentSize.width = screenSize.width

mais cela ne fait aucune différence. Je peux encore faire défiler horizontalement et l'Affichage de l'Image prend toujours environ 10% de plus que la largeur de l'écran.

Remarque, je n'ai pas mis imageView la largeur de l'écran sous forme d'un storyboard, uniquement par programmation.

Des idées?

Cela scrlView.contentSize.width = 0;
Voir ce lien stackoverflow.com/questions/27326924/...
J'ai rencontré le même problème à de nombreuses reprises dans le passé. J'ai résolu mon problème avec l'aide de contentview dans le scrollView. Je conseille l'utilisation uiview comme contentview dans le scrollView. Le point fondamental, c'est la largeur de contentView doit être égale scrollView de largeur. Tous vos imageview textview etc doivent être en vue de contenu.
Normalement, le scrollview ne sera pas de défilement si le contentsize.width <= width de la scrollview, donc si vous ne voulez pas faire le calcul, en toute sécurité définir la contentsize.width = 0; qui permettra d'éliminer les faire défiler pour sûr.

OriginalL'auteur Greg Peckory | 2015-08-25