i have view something like below
date picker view is always there how can i make it appear pop up when Enter date is clicked and when i click on back ground then date picker should go downi have just made date picker view customary but i dont know how to do this appear and disappear thing
Ok. Here is some sample code for your requirement with animation.
- (void) showView
{
[self.view addSubview:yourDatePickerView];
yourDatePickerView.frame = CGRectMake(0, -250, 320, 50);
[UIView animateWithDuration:1.0
animations:^{
yourDatePickerView.frame = CGRectMake(0, 152, 320, 260);
}];
}
And here is how to hide your DatePickerView
- (void) hideView
{
[UIView animateWithDuration:0.5
animations:^{
yourDatePickerView.frame = CGRectMake(0, -250, 320, 50);
} completion:^(BOOL finished) {
[yourDatePickerView removeFromSuperview];
}];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == yourDateTextField)
{
[self showView];
return NO; // preventing keyboard from showing
}
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if(textField == yourDateTextField)
{
[self hideView];
}
}
That's all you need.
You should identify the textfield in the delegate method.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == DATE_TEXT_FIELD)
{
//Display date picker
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if(textField == DATE_TEXT_FIELD)
{
//Hide date picker
}
}
- Create one
UIView
reference which contains this date picker view. - Now assign this
datePickerContainerView
totextField.inputView
property. Then assign
textfield.delegate
toself
and implement yourtextFieldShouldReturn
method. In that method, write this lines[textField resignFirstResponder];
return YES;
Now when you tap on that textfield, it will load datepicker view in place of default keyboard, as per inputview property settings.
Before doing the code for datePicker,make sure that you type the following line of code
[textField resignFirstResponder];
As we know,keyboard is the default first responder of a textField.So you should resign it first and then code for picker otherwise the keyboard will pop up as well.
来源:https://stackoverflow.com/questions/15587087/how-to-pop-up-datepicker-when-text-filed-click-and-disappear-when-editing-done