2014-11-09 15 views
14

Sono interessato a creare una barra dei menu in questo modo:Creazione di una barra dei menu orizzontale Infinite scorrimento in iOS

Menu Bar Example

Da quello che ho letto, dovrei fare un UIScrollView. Ci sono degli esempi online che fanno questo con scrolling infinito (avvolgendo la barra dei menu) e la possibilità di avere il controllo tattile? (ad esempio, scorrere e cambia la barra dei menu).

Grazie!

+0

UIScrollMenu non è una classe insita a iOS ... Presumo che dire UIScrollView. –

+0

Haha sì, mea culpa. – lele0108

+1

E come raccomandazione base, per fare ciò, consiglio di triplicare il contenuto (ad esempio Pallamano Tutto Pallamano Calcio Tutto Pallamano Calcio Tutto Calcio) quindi, mentre l'utente sta per raggiungere un'estremità o l'altra rilevata in scrollViewDidScroll, reimpostare il contenuto sfalsato alla fine opposta. –

risposta

3

Spero che questo codice funzioni per voi.

- (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); 
} 

È possibile impostare il contenuto di scorrimento tanto che si desidera e il menu buttons.Change la vista secondo il pulsante di scatto. Qui la schermata del codice di

enter image description here

4

La vostra richiesta di cui sopra è molto simile alla mia. Ma non riesco a trovare una soluzione abbastanza buona. Quindi decido di creare qualcosa per farlo da solo.

Il ACTabScrollView supporta alcuni gesti diversi. E lo tabs e lo pages scorreranno sempre in modo sincrono.

  • Swipe pagine normalmente
  • Drag schede possono muoversi rapidamente le pagine
  • Click una scheda per passare a quella pagina

demo1 demo2 demo3

La funzione Infinite Scrolling non è ancora pronto, ma continuerò ad attuare.

Io uso l'interfaccia utente simile come esempi in questo progetto. Non so cosa sia l'app, ma se usarla come esempio infastidisce chiunque. Contattami e lo rimuoverò immediatamente.

Sentitevi liberi di darmi qualche suggerimento per migliorarlo :)

+0

è possibile separare lo scorrimento della pagina dallo scorrimento delle schede? Quando si recuperano dati dal server per ogni scheda, è probabilmente più conveniente –

+0

come è possibile creare pagine di contenuto prima di caricare le schede dal server? Se i dati di contenuti e schede verranno ricevuti nello stesso tempo, è possibile utilizzare 'reloadData' per aggiornare il dataSource proprio come' UITableView' –

+0

intendo che le schede sono statiche e conosciute. Il contenuto di ogni pagina relativa a ciascuna scheda verrà recuperato dal server. Quindi, quando seleziono tab1, verrà effettuata una chiamata al server per recuperare il contenuto della pagina correlato a tab1 ecc. –

0

Spero che questo potrebbe aiutare. Questo non ha più animazione ma funziona come previsto.

È possibile utilizzare CollectionView per scorrere orizzontalmente con le opzioni di menu come CollectionView Cell. Per ottenere lo scorrimento a sinistra e a destra, possiamo usare UISwapeGuestureRecognizers e scorrere tra le pagine.

Ecco come l'ho implementato utilizzando CollectionView per ScrollableMenu come schede nella parte superiore dello schermo e le Pagine nella parte inferiore del menu utilizzando la vista Contenitore.

È possibile scaricare questo progetto e controllare per avere un'idea circa il modulo di implementazione sotto il collegamento.

Horizontal Scrollable Menu

Spero che questo potrebbe aiutare. Questo è implementato con Swift 4.0 e X-Code 9.2

Felice Coding ..

Problemi correlati