web-dev-qa-db-fra.com

Comment faire une vue à défilement vertical sur iOS?

Quelqu'un peut-il me guider vers un didacticiel sur la façon d'implémenter une vue à défilement vertical sur mon application iOS?

Je ne peux pas croire que les 2 derniers jours, je ne trouve pas un seul exemple de travail sur juste une vue de défilement vertical. Tous les tutoriels concernent le défilement horizontal, le zoom, etc., etc.

Ce que je recherche serait quelque chose comme ce tutoriel http://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone-2/ , qui montre comment pour créer un uiscrollView et y ajouter des objets, à partir du générateur et non par programme. Le seul défaut que j'ai trouvé est que lorsque vous essayez d'ajouter une carte vers le bas dans la zone de défilement, la carte apparaîtra vers le haut et non dans la position où je l'ai placée. Peut-être aussi des idées là-dessus?

Quelque chose en tête?

19
user1498477

Vous souhaitez donc créer une vue de défilement dans xib.

  1. Ajouter une vue de défilement au fichier nib
  2. réglez sa taille sur ce que vous voulez

    enter image description here

  3. Ajoutez vos contrôles (Boutons, étiquettes ..)

    enter image description here

  4. Ajoutez-le comme vue secondaire de la vue principale

    enter image description here

  5. Enfin, créez une propriété de défilement et dans viewDidLoad définissez la taille du contenu de la défilement

     self.scrollView.contentSize =CGSizeMake(320, 700);
    
24
Anil Varghese

C'est simple, identique à la vue de défilement horizontal. Ajouter une vue de défilement dans une hiérarchie de vues,

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:scrollView];

Maintenant, pour faire défiler la vue de défilement, définissez sa taille de contenu de défilement supérieure à sa limite.

[scrollView setContentSize:CGSizeMake(scrollView.bounds.size.width, scrollView.bounds.size.height*3)];

Il peut désormais faire défiler trois fois la hauteur de scrollView.

13
Atif Khan

J'ai eu du mal avec ce problème simple pendant une journée complète. Il y a très probablement des avantages à une approche plus sophistiquée, mais décocher la mise en page automatique a résolu mon problème.

Pour la solution rapide, je pense que c'est la meilleure approche et vous évitera d'énormes maux de tête.

3
Matt Perejda

Modifiez simplement la taille du contenu de votre scrollview. Supposons que vous créez un UIScrollView avec le cadre suivant

scl=[[UIScrollView  alloc]initWithFrame:CGRectMake(0, 0, 620, 172)];

Appelez maintenant la propriété de taille de contenu de votre vue de défilement, comme je l'ai montré ci-dessous.

[scl setContentSize:CGSizeMake(700, 172)];

Maintenant, ajoutez la vue de défilement sur une vue/View Controller, etc. et vérifiez-la.

1
user1943268