誰かがこのコードを別の質問に投稿して、UIAlertSheet に UIDatePicker を配置しました。
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:nil];
// Add the picker
UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeDate;
[menu addSubview:pickerView];
[menu showInView:self.view];
[menu setBounds:CGRectMake(0,0,320, 500)];
CGRect pickerRect = pickerView.bounds;
pickerRect.origin.y = -100;
pickerView.bounds = pickerRect;
[pickerView release];
[menu release];
これを次のように変更しました。
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:nil
delegate:nil
cancelButtonTitle:@"Done"
destructiveButtonTitle:nil
otherButtonTitles:nil];
// Add the picker
UIDatePicker *pickerView = [[UIDatePicker alloc] init];
pickerView.datePickerMode = UIDatePickerModeCountDownTimer;
[menu addSubview:pickerView];
[menu showInView:self.navigationController.tabBarController.view];
[menu setBounds:CGRectMake(0,0,320, 516)];
[pickerView setFrame:CGRectMake(0, 85, 320, 216)];
これにより、アラート シートが正しく配置されます (nil デリゲートは無視してください。これは単に表示用です)。問題はここにあります:
(出典:hosting-wizards.com)
ご覧のとおり、ミニッツ スクローラーの上にレイヤリングの問題があります。これがデバイスで発生するかどうかは確認していません。なぜこれが起こっているのかについてのアイデアはありますか?
別の質問: UIActionSheet の setBounds セレクターで、正しく表示するために Y サイズが非常に高い値に設定されているのはなぜですか? Y サイズを 480 に設定すると、全画面表示になりますよね?この値をゼロに設定すると、ほとんど見えなくなります。
補足: 上に貼り付けたコードは、UIDatePicker を画像と同じ場所に配置しませんが、UIDatePicker がどこに配置されていてもレイヤー化の問題が発生します。重ね着の問題は上だけで、下ではありません。