2011-07-19 15 views
0

ピッカービューと前のボタン、次のボタン、画像のような完了ボタンを含むセグメント化されたコントロールバーを含むアクションシートを実装しようとしています(http://imgur.com/8wVMy)。私は現在、このように見えるようになっていますhttp://imgur.com/AXn6H。私は誰かがピッカーのビューを底に座らせてちょっと見栄えを良くするのを助けることができるかどうか疑問に思っていました。助けてくれてありがとう。UIPickerViewのUIActionSheetと前のボタン

答えて

2

非常に古いバージョンのiOS(3.2より前のバージョン)をターゲットにしていない限り、完全に異なるアプローチをとることをおすすめします。

3.2から、すべてのUIViewを含むUIResponderは、inputViewプロパティからUIViewを返して、ビューが最初のレスポンダになったときにキーボードではなくそのビューを表示できます。これは通常、最初のレスポンダーにならないか、まったくキーボードを表示しないビューでも機能します。簡単です:

  1. 他のビューと同様に、ポップアップビューをデザインします。
  2. ウィジェットビューがcanBecomeFirstResponderからYESを返していることを確認します。
  3. ウィジェットビューがinputViewからポップアップビューのインスタンスを返すことを確認してください。

詳細はthe documentationです。

また、iPadを使用している場合は、おそらくUIPopoverControllerを使用して、これらの方法の代わりにUIPickerViewを表示する必要があります。 Apple may actually require thisあなたがアプリストアであなたのアプリを入手しようとするなら。

+0

ヘッドアップのおかげです。私はそれをやっている方法で変わったことがあったに違いないと知っていましたが、これを行う方法に関するチュートリアルがありますか、サンプルコードを提供できますか? – mrbaker

0

次のボタンと前のボタンは、実際には画像をツールバー内のsegmentedControllerに表示しています。それを得るにはsegmentedControllerとUIToolbarを定義する必要があります。 H.次に、DataSourceとUIPickerViewを追加します。 次に、viewDidLoadオブジェクトにオブジェクトを追加し、そのプロパティを定義します。たとえば、

if (keyboardToolbar == nil) { 
     keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)]; 
     [keyboardToolbar setBarStyle:UIBarStyleBlackTranslucent]; 


     segControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Anterior", @"Siguiente", nil]]; 
     [segControl setSegmentedControlStyle:UISegmentedControlStyleBar]; 
     [segControl setTintColor:[UIColor blackColor]]; 
     segControl.frame = CGRectMake(5, 7, 150, 33); 
     segControl.momentary = YES; 
     [segControl addTarget:self action:@selector(segSelected:) forControlEvents:UIControlEventValueChanged]; 

     UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

     UIBarButtonItem *aceptar = [[UIBarButtonItem alloc] initWithTitle:@"Hecho" style:UIBarButtonItemStyleDone target:self action:@selector(cerrarTeclado:)]; 

     //aceptar.width = 70.0f; 

     [keyboardToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, aceptar, nil]]; 
     [keyboardToolbar addSubview:segControl]; 
    } 
関連する問題