2013-03-23 8 views
7

किया मैं की तरहdatepicker पॉप अप कैसे करने के लिए जब पाठ क्लिक दायर किया था और गायब हो जाते हैं जब संपादन

नीचे

enter image description here दिनांक पिकर दृश्य हमेशा वहाँ है दृश्य कुछ है मैं कैसे यह पॉप अप प्रदर्शित कर सकता हूँ जब दिनांक दर्ज करें क्लिक किया जाता है और जब मैं वापस जमीन पर क्लिक करें, फिर दिनांक पिकर नीचे

मैं सिर्फ दिनांक पिकर दृश्य प्रथागत बना दिया है, लेकिन मुझे नहीं पता कि यह कैसे दिखाई देते हैं और गायब हो जाते हैं बात

उत्तर

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

आप सभी की जरूरत है कि छिपाने के बारे में है।

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 
      } 
} 
1
  • एक UIView संदर्भ जो इस दिनांक पिकर दृश्य शामिल बनाएँ।
  • अब datePickerContainerView को textField.inputView संपत्ति असाइन करें।
  • फिर textfield.delegateself पर असाइन करें और अपने textFieldShouldReturn विधि को लागू करें। उस विधि में,

    [टेक्स्टफ़िल्ल्ड इस्तीफा फर्स्ट रेस्पॉन्डर];

    वापस यस;

अब जब आप उस पाठ फ़ील्ड पर टैप करते हैं, यह datepicker दृश्य डिफ़ॉल्ट कीबोर्ड के स्थान पर, लोड होगा inputview गुण सेटिंग के अनुसार।

0

datepicker के लिए कोड करने से पहले, सुनिश्चित करें कि आप कोड

[textField resignFirstResponder]; 

कि हम जानते हैं की निम्न पंक्ति टाइप करते हैं, कुंजीपटल एक textField.So के डिफ़ॉल्ट पहले प्रत्युत्तर आप इसे पहले और उसके बाद इस्तीफा देने चाहिए पिकर के लिए कोड अन्यथा कीबोर्ड भी पॉप अप करेगा।

संबंधित मुद्दे