2013-08-05 2 views
6

Ich möchte ein Menü, das horizontale Scrolling haben wird.Wie mache ich horizontale Scroll-Menü in iOS

Das Menü enthält insgesamt 16 Kategorien. Also plane ich 8 auf den ersten Teil und 8 auf einen anderen Teil.

Kann mir jemand einen Einblick geben, was zu tun ist?

Ich glaube, ich muss unten verwenden.

UIScrollView 
Add buttons in this scrollview 

Das war's?

Was ich will, ist auf dem ersten Bildschirm 8 Tasten, wo der erste Bildschirm zwei Zeilen mit 4 Tasten in jeder Zeile haben wird.

Menü Probe

Antwort

22

bei http://www.shoutem.com/ gesehen werden kann, wenn alles, was Sie tun Tasten auf eine horizontale Scroll-Ansicht fügt man etwas tun würde, wie folgt ...

- (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:[NSString stringWithFormat:@"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]; 
    } 

Dieses eine Scroll schaffen mit einer Höhe von 100, Breite so groß wie seine Eltern, und fügen Sie 8 Tasten hinzu.

+0

mit einigen mehr RND, schaffte ich zu bekommen, was ich wollte. Danke für Ihre Hilfe. –

+0

danke Eric, es funktioniert gut :) –

+0

Hallo Eric, ich mache das gleiche, horizontale Scrolling funktioniert perfekt, aber der Button wird nicht angezeigt ..! – mavericks

1

Sie können Ihr Ziel mithilfe eines UIScrollView-Objekts und Ihrer UIButton-Objekte erreichen. Dazu müssten Sie die Rahmen-/Layout-Eigenschaften der einzelnen Schaltflächen je nach iOS-Version festlegen. (Wie in Erics Antwort).

Wenn Sie jedoch iOS 6 und höher verwenden und eine UICollectionView verwenden, in der Ihre Elemente/Zellen die Schaltflächen sind, können Sie die horizontale Scrolling- "Menüleiste" kostenlos abrufen. Es gibt viele SO-Posts, aber die Hauptidee besteht darin, ein Flow-Layout zu verwenden, bei dem die Artikelgröße so hoch ist, dass nur eine Artikelzeile vorhanden ist (die Artikelhöhe muss der Höhe der Sammlungsansicht entsprechen). .

EDIT:

ich sagen sollte, könnte dies etwas übertrieben erscheinen (und vielleicht ist es), aber Sie werden mit einer viel flexibleren Komponente bei sich ändernden Anforderungen in der Zukunft enden. Es ergibt auch nicht viel zusätzlichen Code und abstrahiert lästige Layout-Details.