将 datepicker 视图和 uitoolbarview 添加到您的视图中。例如
CGFloat toolbarHeight = 44.f;
CGFloat datePickerHeight = 140.f;
CGFloat containerViewHeight = toolbarHeight+datePickerHeight;
//create container view for datepicker and toolbar
UIView *containerView = [[UIVIew alloc] initWithFrame:CGRectMake(0.f, [self.view bounds].size.height+containerViewHeight, [self.view bounds].size.width, containerViewHeight)];
//after init toolbar set the frame
toolBar.frame = CGRectMake(0.f,0.f,containerView.frame.size.width, toolbarHeight];
//then add on toolbar button save and release it after add
//after init datePicker set the frame
datePicker.frame = CGRectMake(0.f, toolbarHeight, containerView.frame.size.width, datePickerHeight);
//add datePicker and toolBar to containerView
[containerView addSubview: toolBar];
[containerView addSubview: datePicker];
[toolBar release];
[datePicker release];
//add containerView to main view
[self.view addSubview: containerView];
[containerView release];
因此,当视图确实加载时,它们将被隐藏,竞争者视图的 Y 位于您的视图框架之外。
现在您应该分配 UITextFieldDelegate 的属性委托
textfield.delegate = self;
在委托textFieldDidBeginEditing的方法中,请参阅UITextFieldDelegate您应该触发将显示您的 datePicker 和工具栏的方法。如果您有很多 textFields 来定义哪个被选中,请使用标签属性,它是整数,您可以使用switch而不是许多if条件。
要显示您的 datePicker 和工具栏,您应该更改 containerView 框架的 Y。这是如何做到这一点
CGRect containerViewFrame = containerView.frame;
containerViewFrame.y -=containerViewHeight;
containerView.frame = containerViewFrame;
隐藏只是加上 containerViewHeight 变量。您可以使用 UIViewAnimations 用一些动画来显示它。例如UIViewAnimationCurveEaseInOut