2009-12-08 19 views
10

मेरे पास एक तालिका दृश्य के भीतर एक अच्छा साफ यूआई है जिसमें उपयोगकर्ता के लिए कुछ टेक्स्ट फ़ील्ड भरने हैं। फ़ील्ड में से एक उपयोगकर्ता के जन्मदिन के लिए है।जब कोई उपयोगकर्ता UITextField का चयन करता है तो मैं कीबोर्ड के बजाय UIDatePicker कैसे दिखा सकता हूं?

मैं यह जानना चाहता हूं कि जब उपयोगकर्ता जन्मदिन का क्षेत्र चुनता है, तो एक यूआईडीएटीपीकर वाला दृश्य एक टेक्स्ट फ़ील्ड चुनते समय अलग-अलग कीबोर्ड की तरह होता है।

क्या यह किया जा सकता है? मुझे टेक्स्ट फ़ील्ड को पहला प्रतिसादकर्ता होने से रोकना होगा (कीबोर्ड आने से बचने के लिए) और यदि कोई कीबोर्ड पहले दिखाई नहीं दे रहा था तो मुझे दृश्य स्लाइडिंग को एनिमेट करना होगा।

व्यू को आम तौर पर एक विकल्प पेश करना होगा? यदि ऐसा है तो मैं इसे करने के बारे में कैसे जाउंगा? प्रलेखन से ऐसा लगता है कि मोडल दृश्य अभी भी पूरी स्क्रीन लेते हैं, मैं बस निचले 216 पिक्सल (कीबोर्ड की ऊंचाई और यूआईडीएटीपीकर) का उपयोग करना चाहता हूं।

किसी को भी ऐसा करने के बारे में कोई सुझाव है?

उत्तर

5

मैं स्क्रीन के नीचे से UIDatePicker, एक संपन्न, और रद्द करें बटन युक्त दृश्य को एनिमेट करके इसे कार्यान्वित करता हूं)। CoreAnimation का उपयोग करना, यह बहुत आसान होना चाहिए।

+0

मैं यह करने के बारे में कैसे जाउंगा? मेरे पास आईबी में डिज़ाइन किया गया व्यू कंट्रोलर/व्यू है, लेकिन मुझे नहीं पता कि आगे क्या करना है। क्या मैं वर्तमान में प्रदर्शित दृश्य के दृश्य को एक सबव्यूव के रूप में जोड़ता हूं और फिर इसे किसी भी तरह एनिमेट करता हूं? मुझे यकीन नहीं है कि UIViews एनीमेशन के लिए कैलियर से कैसे संबंधित हैं। –

+1

कभी नहीं। मैं इसे समझने में सक्षम था। मैं उस दृश्य को जोड़ता हूं जिसमें विंडो में दिनांक पिकर शामिल है और इसे '[UIView startAnimations]' ब्लॉक –

+0

दोस्तों का उपयोग करके एनिमेटेड किया गया है, ओडेड बेक्स डोव का समाधान नीचे देखें। जब तक आप आईओएस 3.2 या उच्चतर के लिए कोडिंग कर रहे हों, तब तक आप फ्रेमवर्क को एनिमेट कर सकते हैं और कीबोर्ड के साथ आपके लिए पिकर्स प्रबंधित कर सकते हैं। निश्चित रूप से इसे करने का सही तरीका। –

1

यदि आप कीबोर्ड से उपयोगकर्ता इनपुट स्वीकार नहीं करना चाहते हैं तो आप टेक्स्ट फ़ील्ड का उपयोग क्यों कर रहे हैं? इसके बजाय यूआईएलएबल उप-वर्ग का उपयोग करें (जहां आप छिद्रों को ओवरराइड करते हैं/समाप्त: साथ: UIDatePicker दिखाने के तरीकों का सेट) या UIButton (जहां आपकी क्रिया एक विधि है जो UIDatePicker को स्लाइड करती है)। http://developer.apple.com/library/ios/#samplecode/DateCell/Introduction/Intro.html

और किसी भी मामले में, यह करने के लिए उचित तरीके से कुंजीपटल के बजाय पिकर को दिखाने के लिए UITextField के inputView सेट है -

7

एनीमेशन के बारे में, DateCell नमूना आवेदन पर एक नज़र डालें। यही करने के लिए इसका मतलब है। How can I present a picker view just like the keyboard does?

चीयर्स,

Oded: कि यहाँ पर और अधिक।

32

पुराना प्रश्न लेकिन इन दिनों ऐसा करने का सही तरीका UITextField के इनपुट व्यू को आपके द्वारा कहीं भी बनाए गए पिकर पर सेट करना होगा। कुछ इस तरह:

UIPickerView *myPicker = [[UIPickerView alloc] init]; 
// set picker frame, options, etc... 
// N.B. origin for the picker's frame should be 0,0 

[myTextField setInputView:myPicker]; 

जब आप एक UITextField संपादित करने के लिए जाना है, आईओएस वास्तव में सिर्फ प्रदर्शित करता है जो कुछ दृश्य textField.inputView जो डिफ़ॉल्ट रूप से कुंजीपटल है पर है, तो आप इसे कुछ भी है, बशर्ते उसकी UIView का एक उपवर्ग के रूप में चाहते हैं कर सकते हैं ।

+3

यह उत्तर "UIView एनीमेशन" समाधान के बजाय स्वीकार किया जाना चाहिए। धन्यवाद – klefevre

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

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