如何在文本字段单击时弹出datePicker并在编辑完成时消失

时间:2013-03-23 13:02:17

标签: ios uitextfield uipickerview

我查看了类似下面的内容

enter image description here 日期选择器视图总是在那里如何让它在点击输入日期时弹出,当我点击背景然后日期选择器应该下降

我刚刚习惯了日期选择器视图,但我不知道怎么做这个出现并消失的东西

4 个答案:

答案 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的默认第一响应者。所以你应该首先重新签名然后编码选择器,否则键盘也会弹出。