我查看了类似下面的内容
日期选择器视图总是在那里如何让它在点击输入日期时弹出,当我点击背景然后日期选择器应该下降
我刚刚习惯了日期选择器视图,但我不知道怎么做这个出现并消失的东西
答案 0 :(得分:13)
确定。以下是动画需求的示例代码。
- (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);
}];
}
以下是隐藏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];
}
}
这就是你所需要的一切。
答案 1 :(得分:2)
您应该在委托方法中识别文本字段。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == DATE_TEXT_FIELD)
{
//Display date picker
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if(textField == DATE_TEXT_FIELD)
{
//Hide date picker
}
}
答案 2 :(得分:1)
UIView
引用。 datePickerContainerView
分配给textField.inputView
属性。 然后将textfield.delegate
分配给self
并实施您的
textFieldShouldReturn
方法。在该方法中,写下这一行
[textField resignFirstResponder];
返回YES;
现在,当您点击该文本字段时,它将根据inputview属性设置加载datepicker视图来代替默认键盘。
答案 3 :(得分:0)
在执行datePicker的代码之前,请确保键入以下代码行
[textField resignFirstResponder];
我们知道,键盘是textField的默认第一响应者。所以你应该首先重新签名然后编码选择器,否则键盘也会弹出。