Je suis intéressé à créer une barre de menu comme ceci:
D'après ce que j'ai lu, je devrais faire un UIScrollView. Existe-t-il des exemples en ligne qui font cela avec un défilement infini (entourant la barre de menus) et la possibilité de contrôler le toucher? (c’est-à-dire balayer et cela change la barre de menu).
Merci!
Votre demande est très similaire à la mienne. Mais je ne peux pas trouver une solution assez bonne aussi. Je décide donc de créer quelque chose pour le faire moi-même.
ACTabScrollView prend en charge différents gestes. Et les variables tabs
et pages
défileront toujours de manière synchrone.
Swipe
pages normalementDrag
permettent de déplacer rapidement des pagesClick
un onglet pour passer à cette pageLa fonctionnalité Infinite Scrolling
n'est pas encore prête, mais je vais continuer à l'implémenter.
J'utilise l'interface utilisateur similaire comme exemples dans ce projet. Je ne sais pas ce que l'application est, mais si l'utiliser comme exemple dérange personne. Contactez-moi et je retirerai immédiatement cela.
N'hésitez pas à me faire des suggestions pour l'améliorer :)
J'espère que ce code fonctionnera pour vous.
- (void)viewDidLoad
{
[super viewDidLoad];
[self createHorizontalScroll];
}
- (void)createHorizontalScroll
{
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 80, self.view.frame.size.width, 80)];
int buttonX = 0;
for (int i = 0; i < 5; i++)
{
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(buttonX, 0, 100, 60)];
[button setTitle:[NSString stringWithFormat:@"Button %d", i] forState:UIControlStateNormal];
[scrollView addSubview:button];
buttonX = buttonX+button.frame.size.width;
[button addTarget:self
action:@selector(changeView:)
forControlEvents:UIControlEventTouchUpInside];
}
scrollView.contentSize = CGSizeMake(buttonX, scrollView.frame.size.height);
scrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollView];
}
-(void)changeView:(UIButton*)sender
{
NSLog(@"I Clicked a button %ld",(long)sender.tag);
}
Vous pouvez définir le contenu de défilement à votre guise ainsi que les boutons de menu. Modifiez la vue en fonction du clic de bouton. Voici la capture d'écran du code ci-dessus
J'espère que cela pourrait vous aider. Cela n'a pas plus d'animation mais fonctionne comme prévu.
Vous pouvez utiliser CollectionView dans ceci pour faire défiler horizontalement avec des options de menu comme Cellule CollectionView. Pour réaliser le balayage à gauche et à droite, nous pouvons utiliser UISwapeGuestureRecognizers et nous pouvons faire défiler les pages.
Voici comment je l'ai implémenté en utilisant CollectionView pour ScrollableMenu sous forme d'onglets en haut de l'écran et de Pages en bas du menu en utilisant la vue Conteneur.
Vous pouvez télécharger ce projet et vérifier si vous avez une idée de la mise en œuvre sous le lien ci-dessous.
J'espère que cela pourrait vous aider. Ceci est implémenté avec les dernières versions de Swift 4.0 et X-Code 9.2
Bonne codage ..