135 votes

UIScrollView ne défile pas

J'ai un UIScrollView qui contient plusieurs UIImageView UILabel's etc ... les étiquettes sont bien plus longues que le UIScrollView , mais lorsque je lance l'application, ne peut pas cliquer et faire défiler vers le bas ...

Pourquoi cela pourrait-il être?

Merci

174voto

Bogatyr Points 12027

Il est toujours bon d'afficher un extrait de code fonctionnel complet:

 // in viewDidLoad:
//
UIScrollview *myScrollView;
UIView *contentView;
// scrollview won't scroll unless content size explicitly set
//

[myScrollView addSubview:contentView];//if the contentView is not already inside your scrollview in your xib/StoryBoard doc

myScrollView.contentSize = contentView.frame.size; //sets ScrollView content size
 

Je n'ai pas trouvé de moyen de définir contentSize dans IB (à partir de Xcode 5.0) .

122voto

user1539652 Points 1129

Si vous ne pouvez pas faire défiler la vue même après avoir défini correctement contentSize , veillez à décocher "Utiliser la mise en forme automatique" dans Interface Builder -> Inspecteur de fichier.

69voto

Chris Vasselli Points 3697

Vous devez définir la propriété contentSize de l’affichage à défilement dans pour qu’il puisse faire défiler correctement.

Si vous utilisez la mise en forme automatique, vous devez affecter contentSize à viewDidLayoutSubviews dans l’ordre pour qu’elle soit appliquée lorsque la disposition automatique est terminée.

45voto

Jasper Blues Points 7262

La réponse ci-dessus est correcte - arriver de défilement, il est nécessaire de régler la taille du contenu.

Si vous utilisez un générateur d’interface une belle façon de le faire est avec attributs runtime définis par l’utilisateur. Par exemple :

enter image description here

40voto

wzbozon Points 2851

Essayez de redimensionner la taille du contenu d’un nombre considérable. Je ne comprenais pas, pourquoi mon affichage à défilement ne fait pas défiler même quand il est content de taille semble être plus grand que la taille du contrôle. J’ai découvert, que si la taille du contenu est plus petite que nécessaire, il ne fonctionne pas aussi.

Au lieu de 2000, vous pouvez mettre vos propres grands nombres. Et si ça marche, alors cela signifie, que la taille de votre contenue n’est pas assez grande lorsque vous redimensionnez.

Délégué n’est pas nécessaire pour l’affichage à défilement travailler.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X