有人在另一个问题中发布了以下代码,将UIDatePicker放入UIAlertSheet中:
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)];
这将产生一个正确定位的警报表(忽略空委托;这只是为了显示目的)。问题在于这里:
(来源:hosting-wizards.com)
正如您所看到的,在分钟滚动器上方存在分层问题。我尚未确认此是否发生在设备上。有什么想法,为什么会发生这种情况?
另一个问题:为什么UIActionSheet上的setBounds选择器具有如此高的Y大小值以进行正确显示?将Y大小设置为480应该创建全屏显示,不是吗?将此值设置为零几乎使其不可见。
顺便说一下:上面粘贴的代码并没有将UIDatePicker定位在图片中的同一位置,但无论UIDatePicker放置在哪里,分层问题都会发生。分层问题只出现在顶部而不是底部。