2013-08-05 16 views
6

水平スクロールするメニューを作りたいと思います。iOSで水平スクロールメニューを作成する方法

メニューには合計16のカテゴリが含まれています。だから私は最初の部分で8を取り、別の部分で8を休むことを計画しています。

何が実行される必要があるのか​​私に洞察を与えることができますか?

私は以下を使用する必要があると信じています。

UIScrollView 
Add buttons in this scrollview 

これはそれですか?


最初の画面には8つのボタンがあり、最初の画面には2つの行があり、各行には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]; 
    } 

これはscrollviewを作成します。親の高さの100の高さで、8つのボタンを追加します。

+0

RNDをもう少し追加すれば、私は自分が望むものを手に入れることができました。ご協力いただきありがとうございます。 –

+0

ありがとう、エリックはうまくいきます:) –

+0

こんにちはエリック、私は同じことをしています、水平スクロールは完全に動作していますが、ボタンは表示されません..! – mavericks

1

UIScrollViewとUIButtonオブジェクトを使用して目標を達成することができます。目標とするiOSのバージョンに応じて各ボタンのフレーム/レイアウトプロパティを設定する必要があります。 (エリックの回答のように)。

ただし、アイテム/セルがボタンであるUICollectionViewを使用してiOS 6以上をターゲットにしている場合は、水平スクロール「メニューバー」を無料で入手できます。これには多くのSOの投稿がありますが、主なアイデアは、アイテムのサイズがアイテムの行が1つだけになるような高さを持つフローレイアウトを使用することです(アイテムの高さをコレクションビューの高さと同じにします) 。

EDIT:

私が言うべきで、これはやり過ぎのように(そして多分それはある)ように見えるかもしれませんが、あなたは要件が将来変更される場合にははるかに柔軟な構成要素となってしまいます。それはまた、余分なコードと抽象的な離れた退屈なレイアウトの詳細をもたらすことはありません。

関連する問題