2013-08-05 28 views
6

我想製作一個具有水平滾動的菜單。如何在iOS中製作水平滾動菜單

該菜單包含共16個類別。所以我打算在第一部分取8分,在另一部分取8分。

有人能告訴我需要做什麼嗎?

我相信我需要使用下面。

UIScrollView 
Add buttons in this scrollview 

就是這樣?


我想要的是第一個屏幕8個按鈕,其中第一個屏幕將有兩行,每行4個按鈕設置。

菜單樣品在http://www.shoutem.com/

回答

22

如果你正在做的是添加按鈕,你會像下面做一些事情水平滾動視圖可以看到...

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

這將創建一個滾動視圖高度爲100,寬度與其父母一樣大,併爲其添加8個按鈕。

+0

有一些更多的RND,我設法得到我想要的。謝謝你的幫助。 –

+0

謝謝埃裏克它工作得很好:) –

+0

嗨埃裏克,我做的一樣,水平滾動工作完美,但按鈕不顯示..! – mavericks

1

您可以使用UIScrollView和UIButton對象完成您的目標,這將涉及根據您定位的iOS版本設置每個按鈕的框架/佈局屬性。 (正如Eric的回答)。

但是,如果您的目標是iOS 6及更高版本,請使用UICollectionView,其中的項目/單元格是按鈕,然後您可以免費獲取水平滾動「菜單欄」。這裏有很多SO貼子,但主要想法是使用流佈局,其中項目大小有一個高度,這樣只有一行項目(只需使項目高度與集合視圖的高度相同) 。

編輯:

我應該說,這似乎有點小題大做(也許是),但你最終會在情況需要改變未來一個更靈活的組件。它也不會產生太多額外的代碼,並將繁瑣的佈局細節抽象出來。