2013-08-05 11 views
6

Chciałbym zrobić menu, które będzie przewijać w poziomie.jak zrobić poziome menu przewijania w iOS

Menu zawiera łącznie 16 kategorii. Więc planuję wziąć 8 na pierwszej części i odpocząć 8 na innej części.

Czy ktoś może mi dać wgląd w to, co należy zrobić?

Uważam, że muszę użyć poniżej.

UIScrollView 
Add buttons in this scrollview 

To wszystko?


Co chcę jest na pierwszym ekranie 8 przycisków, gdzie pierwszy ekran będzie miał dwa rzędy z 4 przyciskami ustawić na każdym rzędzie.

Przykładowe menu można zobaczyć na http://www.shoutem.com/

Odpowiedz

22

Jeśli wszystko robisz jest dodanie przycisków przewijania poziomego widzenia byłoby zrobić coś jak następuje ...

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

To stworzy Scrollview o wysokości 100, szerokości tak dużej, jak jego rodzic, i dodaj do niego 8 przycisków.

+0

z kilkoma innymi RND, udało mi się dostać to, co chciałem. Dzięki za pomoc. –

+0

dziękuję Eric to działa dobrze :) –

+0

cześć Eric, robię to samo, poziome przewijanie działa idealnie, ale przycisk nie wyświetla ..! – mavericks

1

Możesz osiągnąć cel za pomocą obiektów UIScrollView i UIButton, wymaga to ustawienia właściwości ramki/układu każdego przycisku w zależności od wersji systemu iOS, na którą celujesz. (Jak w odpowiedzi Erica).

Jeśli jednak kierujesz reklamy na system iOS 6 lub nowszy, przy użyciu UICollectionView, w którym Twoje elementy/komórki są przyciskami, możesz pobrać poziomy pasek menu "za darmo". Istnieje wiele postów na ten temat, ale głównym pomysłem jest użycie układu przepływu, w którym rozmiar elementu ma wysokość taką, że będzie tylko jeden rząd elementów (wystarczy, aby wysokość elementu była taka sama jak wysokość widoku kolekcji) .

EDIT:

powinienem powiedzieć, to może wydawać się przesadą (a może to jest), ale skończy się ze znacznie bardziej elastyczny składnik w przypadku zmiany wymagań w przyszłości. Nie skutkuje to również zbytnim dodatkowym kodem i streszcza uciążliwe szczegóły układu.

Powiązane problemy