comment faire un menu de défilement horizontal dans iOS

Je voudrais faire un menu qui aura un défilement horizontal.

Le menu contient au total 16 catégories. Donc je prévois de prendre 8 sur la première partie et de reposer 8 sur une autre partie.

Quelqu'un peut-il me donner un aperçu de ce qui doit être fait?

Je crois que je dois utiliser ci-dessous.

UIScrollView Add buttons in this scrollview 

C'est tout?


Ce que je veux, c'est sur le premier écran 8 buttons où le premier écran aura deux lignes avec 4 buttons sur chaque ligne.

L'échantillon de menu peut être vu à http://www.shoutem.com/

Si tout ce que vous faites est d'append des buttons à une vue de défilement horizontal, vous feriez quelque chose comme suit …

 - (void)createScrollMenu { UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100)]; int x = 0; for (int i = 0; i < 8; i++) { UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, 0, 100, 100)]; [button setTitle:[NSSsortingng ssortingngWithFormat:@"Button %d", i] forState:UIControlStateNormal]; [scrollView addSubview:button]; x += button.frame.size.width; } scrollView.contentSize = CGSizeMake(x, scrollView.frame.size.height); scrollView.backgroundColor = [UIColor redColor]; [self.view addSubview:scrollView]; } 

Cela va créer une scrollview avec une hauteur de 100, largeur aussi grande que son parent, et append 8 buttons à elle.

Vous pouvez accomplir votre but en utilisant un UIScrollView et vos objects UIButton, cela impliquerait de définir les propriétés de frame / layout de chaque button en fonction de la version iOS que vous ciblez. (Comme dans la réponse d'Eric).

Toutefois, si vous ciblez iOS 6 et supérieur, en utilisant un UICollectionView où vos éléments / cellules sont les buttons, vous pouvez get gratuitement la barre de menu de défilement horizontal. Il y a beaucoup de publications SO sur ce sujet, mais l'idée principale est d'utiliser une disposition de stream où la taille de l'object a une hauteur telle qu'il n'y aura qu'une seule ligne d'objects (juste la hauteur de l'object) .

MODIFIER:

Je devrais dire, cela pourrait sembler exagéré (et peut-être il est), mais vous vous refindez avec un composant beaucoup plus flexible dans le cas où les exigences changeraient dans le futur. Il ne produit pas non plus beaucoup de code supplémentaire et résout les détails de layout fastidieux.