2014-11-09 9 views
14

Ich bin daran interessiert, eine Menüleiste, wie dies bei der Schaffung von:Schaffung einer horizontaler Infinite Scrolling-Menüleiste in iOS

Menu Bar Example

Von dem, was ich gelesen habe, soll ich eine UIScrollView tun. Gibt es Online-Beispiele, die das mit endlosem Scrollen (Umwickeln der Menüleiste) und der Möglichkeit zur Berührungssteuerung machen? (d. h. wischen und es ändert die Menüleiste).

Danke!

+0

UIScrollMenu ist keine Klasse eigen iOS ... Ich nehme an, Sie meinen UIScrollView. –

+0

Haha ja, mea culpa. – lele0108

+1

Und als eine grundlegende Empfehlung, um dies zu erreichen, empfehle ich, den Inhalt zu verdreifachen (z. B. Handball Alle Fußball Handball Alle Fußball Handball Alle Fußball), dann als der Benutzer ist ein Ende oder das andere zu erreichen wie in scrollViewDidScroll festgestellt, den Inhalt zurücksetzen Offset zum gegenüberliegenden Ende. –

Antwort

3

Ich hoffe, dieser Code wird für Sie arbeiten.

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

Sie können Scroll-Inhalt so oft wie Sie wollen und Menü-Schaltflächen einstellen.Ändern Sie die Ansicht entsprechend der Schaltfläche klicken. Hier ist der Screenshot des obigen Code

enter image description here

4

Ihre Anfrage ist sehr ähnlich wie mir. Aber ich kann auch keine gute Lösung finden. Also entscheide ich mich, etwas selbst zu schaffen.

Die ACTabScrollView unterstützt einige verschiedene Gesten. Und die tabs und pages werden immer synchron scrollen.

  • Swipe Seiten normalerweise
  • Drag Tabs schnell Seiten bewegen
  • Click eine Registerkarte zu dieser Seite

demo1 demo2 demo3

Die Infinite Scrolling Funktion zu ändern ist noch nicht fertig, aber ich werde weitermachen.

Ich verwende die ähnliche UI als Beispiele in diesem Projekt. Ich weiß nicht, was die App ist, aber wenn Sie es als Beispiel verwenden, stören Sie niemanden. Kontaktieren Sie mich und ich werde das sofort entfernen.

Sie können mich jede Anregung zu geben, es

zu verbessern :)
+0

ist es möglich, Seitenwischen von Tab Scrollen zu trennen? Wenn Sie für jede Registerkarte Daten vom Server abgerufen haben, ist es wahrscheinlich bequemer, –

+0

Wie können Sie Inhaltsseiten erstellen, bevor Sie Registerkarten vom Server laden? Wenn die Daten von Inhalten und Tabs in der gleichen Zeit empfangen werden, können Sie 'reloadData' verwenden, um die dataSource genauso zu aktualisieren wie' UITableView' –

+0

ich meine Tabs sind statisch und bekannt. Der Inhalt jeder Seite, die zu jeder Registerkarte gehört, wird vom Server abgerufen. Also, wenn ich Tab1 wähle, wird ein Aufruf an den Server erfolgen, um den Seiteninhalt bezogen auf tab1 etc. zu erhalten. –

0

ich diese Hoffnung könnte Ihnen helfen. Dies hat nicht mehr Animation, funktioniert aber wie erwartet.

Sie können CollectionView verwenden, um horizontal mit Menüoptionen als CollectionView-Zelle zu blättern. Um das Wischen links und rechts zu erreichen, können wir UISwapeGuestureRecognizers verwenden und zwischen den Seiten blättern.

Hier ist, wie ich es mit CollectionView für ScrollableMenu als Registerkarten am oberen Rand des Bildschirms und die Seiten im unteren Teil des Menüs mit Container-Ansicht implementiert haben.

Sie können dieses Projekt herunterladen und prüfen, ob Sie eine Idee über die Implementierung aus dem folgenden Link erhalten.

Horizontal Scrollable Menu

Hoffnung dies könnte Ihnen helfen. Dies geschieht mit Swift 4.0 und X-Code 9.2

Glücklich Coding ..