Ios 运行时将UIDatePicker添加到UIView的问题
我试图在用户单击按钮时将UIDatePicker添加到UIView。我有一个从底部向上滑动UIView的动画设置。如果我将UIDatePicker添加到ViewControllers视图,则日期选择器将正确显示。但是,如果我将日期选择器添加到UIView,则日期选择器根本不会显示Ios 运行时将UIDatePicker添加到UIView的问题,ios,objective-c,cocoa-touch,uidatepicker,Ios,Objective C,Cocoa Touch,Uidatepicker,我试图在用户单击按钮时将UIDatePicker添加到UIView。我有一个从底部向上滑动UIView的动画设置。如果我将UIDatePicker添加到ViewControllers视图,则日期选择器将正确显示。但是,如果我将日期选择器添加到UIView,则日期选择器根本不会显示 - (IBAction)setTimeButtonPressed:(UIButton *)sender { // Creates Frame Rects for views and controls C
- (IBAction)setTimeButtonPressed:(UIButton *)sender
{
// Creates Frame Rects for views and controls
CGRect datePickerViewOutFrame = CGRectMake(0, 336, self.view.frame.size.width, 228);
CGRect datePickerOutFrame = CGRectMake(0, 336, self.view.frame.size.width, 162);
// Create View that will slide out
UIView *datePickerView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 0)];
datePickerView.backgroundColor = [UIColor flatCloudsColor];
// Setup DatePicker
UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 0)];
datePicker.datePickerMode = UIDatePickerModeTime;
datePicker.date = [NSDate date];
datePicker.hidden = NO;
[self.view addSubview:datePickerView];
[datePickerView addSubview:datePicker]; /* DOES NOT WORK*/
self.datePickerView.clipsToBounds = YES;
// Animate the views sliding out from the bottom
[UIView animateWithDuration:0.5
delay:0
options:UIViewAnimationOptionCurveLinear
animations:^{
datePicker.frame = datePickerOutFrame;
datePickerView.frame = datePickerViewOutFrame;
}
completion:^(BOOL finished){
// Might need later
}];
}
但是,如果我更改了添加datePicker的行,它可以工作,但是我不能将它剪裁到datePickerView的边界
[self.view addSubview:datePickerView];
[self.view addSubview:datePicker]; /* Works but can't clip DatePicker */
我做错了什么 UIDatePickerView框架需要相对于其父视图。因此,如果要将其添加到
datePickerView
,则UIDatePicker
的框架的原点应为0,0
,而不是基于视图控制器视图的高度
UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 0)];
啊,我知道我错过了什么。谢谢,这就成功了!