2013-03-23 18 views
7

tôi có xem một cái gì đó như dưới đâylàm thế nào để bật lên datepicker khi văn bản đệ nhấp chuột và biến mất khi chỉnh sửa xong

enter image description here xem bảng chọn ngày luôn là có làm thế nào tôi có thể làm cho nó xuất hiện cửa sổ pop up khi Nhập ngày được nhấp và khi tôi bấm trên mặt đất trở lại sau đó bảng chọn ngày nên đi xuống

tôi đã chỉ cần thực hiện Chế độ xem ngày chọn phong tục nhưng tôi không biết làm thế nào để làm điều này xuất hiện và biến mất điều

Trả lời

13

Ok. Dưới đây là một số mã mẫu cho yêu cầu của bạn với hoạt ảnh.

- (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); 
         }]; 
} 

Và đây là làm thế nào để che giấu DatePickerView bạn

- (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]; 
    } 
} 

Đó là tất cả bạn cần.

2

Bạn nên xác định textfield trong phương pháp đại biểu.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if(textField == DATE_TEXT_FIELD) 
    { 
      //Display date picker 
    } 
} 


- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 

     if(textField == DATE_TEXT_FIELD) 
     { 
       //Hide date picker 
      } 
} 
1
  • Tạo một UIView tham khảo, trong đó có xem bảng chọn ngày này.
  • Bây giờ hãy chỉ định thuộc tính này datePickerContainerView đến textField.inputView .
  • Sau đó, chỉ định textfield.delegate đến self và triển khai phương thức textFieldShouldReturn của bạn. Trong phương pháp đó, hãy viết các dòng này

    [textField resignFirstResponder];

    trả lại CÓ;

Bây giờ khi bạn nhấn vào trường văn bản đó, nó sẽ tải chế độ xem ngày tháng thay cho bàn phím mặc định, theo cài đặt thuộc tính inputview.

0

Trước khi làm mã cho datepicker, hãy chắc chắn rằng bạn gõ các dòng mã sau đây

[textField resignFirstResponder]; 

Như chúng ta đã biết, bàn phím là mặc định responder đầu tiên của một textField.So bạn nên từ chức nó đầu tiên và sau đó mã cho bộ chọn nếu không bàn phím cũng sẽ bật lên.