2

アクションシートにボタンを追加しています。それは簡単ですが、私の場合は5つ以上あり、Appleはアクションシートで5つ以上のボタンを受け入れません。そこで、アクションシートにスクロールビューを追加し、スクロールビューにボタンを追加します。ただし、このビューには、キャンセルされる2つの固定ボタンと、タイトルが付いたボタンがあります。

これはこれを行う正しい方法ですか?

4

2 に答える 2

6

ボタンが5つ以上ある場合は、通常のビューでカスタマイズされたテーブルビューを使用しUIModalTransitionStyleCoverVertical、アクションシートのようになるように指定することをお勧めします。

于 2012-04-16T08:13:25.600 に答える
1

次のコードを使用してください。

- (IBAction)actionsheetbuttonpress:(id)sender {


actionSheet = [[UIActionSheet alloc] initWithTitle:nil 
                                          delegate:nil
                                 cancelButtonTitle:nil
                            destructiveButtonTitle:nil
                                 otherButtonTitles:nil];

[actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];

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



CGRect pickerFrame = CGRectMake(0, 40, 0, 0);

pickerData = [[UIPickerView alloc]initWithFrame:pickerFrame];
pickerData.showsSelectionIndicator = YES;
pickerData.dataSource = self;
pickerData.delegate = self;



[actionSheet addSubview:pickerData];


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

UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc]initWithTitle:@"DONE-A" style:UIBarButtonItemStyleBordered target:self action:@selector(DatePickerDoneClick)];
UIBarButtonItem *doneBtn1 = [[UIBarButtonItem alloc]initWithTitle:@"DONE-B" style:UIBarButtonItemStyleBordered target:self action:@selector(DatePickerDoneClick)];
UIBarButtonItem *doneBtn2 = [[UIBarButtonItem alloc]initWithTitle:@"DONE-C" style:UIBarButtonItemStyleBordered target:self action:@selector(DatePickerDoneClick)];



[barItems addObject:doneBtn];
[barItems addObject:doneBtn1];
[barItems addObject:doneBtn2];
//add more two button here...or you can add any no of buttons..

[pickerDateToolbar  setItems:barItems animated:YES];

[actionSheet addSubview:pickerData];
[actionSheet addSubview:pickerDateToolbar];
[actionSheet showInView:self.view];
[actionSheet setBounds:CGRectMake(0,0,320, 464)];
[barItems release];
[actionSheet release];
[pickerData release];

}

願わくば、これはあなたを助けるでしょう....チル

于 2012-04-16T08:12:08.717 に答える