48 votes

Comment défiler vers une position de manière programmatique dans UIScrollView ?

J'ai une vue défilante qui défile horizontalement. Je viens d'y ajouter des images, des étiquettes et une vue Web, et elle contient de nombreux objets. Je veux faire défiler directement le premier objet dans la vue défilante. Comment dois-je m'y prendre ?

91voto

samfisher Points 6889

Utilisez le code suivant :

scrollView.contentOffset = CGPoint(x: 0, y: 0)

1 votes

ScrollView.contentOffset = CGPointMake(0, 0) ;

28 votes

Utilisez [scrollView setContentOffset:CGPointMake(0, 0) animated:YES] si vous souhaitez une animation.

48voto

inorganik Points 2591

Pour animer votre défilement, faites ceci :

CGRect frame = CGRectMake(0, 768, 1024, 748); //wherever you want to scroll 
[self.scrollView scrollRectToVisible:frame animated:YES];

0 votes

Existe-t-il un moyen de ne pas avoir à spécifier la largeur et la hauteur de la vue défilante ?

4voto

Kakshil Shah Points 325

Le moyen le plus simple avec l'animation ->

[scrollView setContentOffset:CGPointMake(0, 0) animated:YES]

1voto

Arjun Nagineni Points 11

La réponse en version Swift 3 est la suivante :

scrollView.contentOffset = CGPoint(x: 0.0, y: 0.0)

0voto

Irsyad Ashari Points 17

Si quelqu'un se demande comment le faire en Swift 5 avec xcode 11 :

J'ai mis une valeur négative dans les paramètres x parce que je veux faire défiler vers la gauche.

let frame = CGRect(x: -540, y: 0, width: 1080, height: 370); //wherever you want to scroll
boardScrollView.scrollRectToVisible(frame, animated: true) // set animated to true if you want to animate it

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