0

私はiOSのコーディングにまったく慣れていません。これを手伝ってくれることを願っています、ありがとう。

UIToolBarxibにwithsomeUIBarButtonItemとanを追加しましたが、それらをinコードUIPickerViewに追加したいと思います。UIActionSheet、、、およびはプロパティであり、次のように実行しますUIToolBarUIBarButtonItemUIPickerViewUIActionSheet

_pickerView.frame = CGRectMake(0, 40, 320, 216);
[_actionSheet addSubview:_toolBar];
[_actionSheet addSubview:_pickerView];

下の画像でわかるように、いくつかの問題があります。

  1. UIBarButtonItem欠落しています
  2. 黒にするUIToolBar必要があります
  3. UIPickerView大きすぎて右側が欠けているようです

私はこれらすべてをプログラムで実行できることを知っていますが、UIのものをxibに入れる方が良いと思います。誰かがそれを修正する方法を教えてもらえますか?

ここに画像の説明を入力してください

ここに画像の説明を入力してください

4

4 に答える 4

2

TimCinelによるUIActionSheetPickerをチェックすることをお勧めします。それは私にとってこのようなものを本当に簡単にしました、そして例は本当に従いそして理解するのが簡単です。

リンクは次のとおりです:https ://github.com/skywinder/ActionSheetPicker-3.0

(古いリンクhttps://github.com/TimCinel/ActionSheetPicker

これには、[完了] / [キャンセル]などのボタンのUIPickerViewの上にバーがありますが、これらのボタンを変更するようにコードを変更することも比較的簡単であることがわかりました。

于 2012-08-06T06:24:04.607 に答える
1

上の写真に示されている望ましい結果を得るために......私はあなたにプログラミングアプローチがxibアプローチよりも優れていることをお勧めします

[完了]ボタンを使用してピッカーアクションシートを実装しようとしていると思います。ツールバーの代わりにsegemntコントロールを使用することを参照します。

ピッカーと[完了]ボタンを使用してアクションシートを表示する場合は、次のコードを使用します。

UIActionSheet *Example_Actionsheet = [[UIActionSheet alloc] initWithTitle:nil  delegate:self
                                                 cancelButtonTitle:nil  
                                            destructiveButtonTitle:nil
                                                 otherButtonTitles:nil];  

    Ex_Picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 40, 0, 0)];
    Ex_Picker.delegate = self;  
    Ex_Picker.showsSelectionIndicator = YES;    // note this is default to NO  
    Example_Actionsheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
    [Example_Actionsheet addSubview:Bedroom_Picker];  
    [Example_Actionsheet showInView:self.view]; 
    [Example_Actionsheet setBounds:CGRectMake(0, 0, 320, 485)];

    UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]];
    closeButton.momentary = YES; 
    closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
    closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
    closeButton.tintColor = [UIColor blueColor];
    [closeButton addTarget:self action:@selector(Close_method) forControlEvents:UIControlEventValueChanged];
    [Example_Actionsheet addSubview:closeButton];
    [Example_Actionsheet release];

ツールバーを使用したい場合

pickerDateToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerDateToolbar.barStyle = UIBarStyleBlackOpaque;
[pickerDateToolbar sizeToFit];

NSMutableArray *barItems = [[NSMutableArray alloc] init];

UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];

UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)];
[barItems addObject:doneBtn];

[pickerDateToolbar setItems:barItems animated:YES];

そして、アクションシートのサブビューにツールバーとピッカーを追加します。

[aac addSubview:"Your toolbar"];
[aac addSubview:"Your picker"];

アクションシートフレームを設定します。それはツールバーで行われます。

于 2012-08-06T06:10:56.443 に答える
0

ツールバーをサブビューとして追加するための次のコードの使用。

-(IBAction)btnOption:(id)sender{

            self.tBar.frame=CGRectMake(0, 0, 320, 44);
            self.pkrMain.frame=CGRectMake(0, 47, 320, 216);

           self.act=[[UIActionSheet alloc] initWithTitle:lblReam delegate:self cancelButtonTitle:lblOk destructiveButtonTitle:@"Cancel" otherButtonTitles:@"OptionA",@"OptionB",nil];

            [self.act addSubview:self.tBar];
            [self.act addSubview:self.pkrMain];

            [self.pkrMain reloadAllComponents];
            [self.act clipsToBounds];
            [self.act showInView:[UIApplication sharedApplication].keyWindow];
        }
于 2012-08-06T06:23:46.373 に答える
0

最後にUIView、ツールバーとピッカーをラップするためにを追加し、それをUIActionSheetコード内に追加しました。

[_actionSheet addSubview:_wrapper];

これを行った後、レイアウトは問題ありません。

于 2012-08-08T01:42:52.857 に答える