2012-08-18 20 views
12

क्या UIDatePicker केवल वर्ष दिखाने का कोई तरीका है?UIDatePicker केवल वर्ष दिखाने के लिए

+0

यदि आप अपने कोड पेस्ट कर सकते हैं तो यह और अधिक समझने में मदद करेगा। –

+0

बस एक साधारण पिकर का उपयोग करें। –

उत्तर

5

आप UIDatePicker के साथ ऐसा नहीं कर सकते हैं, लेकिन आप UIPicker के साथ कर सकते हैं।

आप साल के लिए एक सरणी बनाते हैं, और UIPicker प्रतिनिधियों

Here एक ट्यूटोरियल का उपयोग UIPicker करने के लिए उन्हें जोड़ने की जरूरत है।

14

मेरे पास एक छोटा कोड है जिसे मैं हटाने वाला था, लेकिन स्निपेट कहीं भी ऑनलाइन होने पर बेहतर है। यह आश्चर्यजनक नहीं है, लेकिन यह खोजने योग्य है!

उद्देश्य-सी कोड 1 9 60 से सभी वर्षों की एक सरणी बनाने के लिए। एक UIPicker

//Get Current Year into i2 
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init]autorelease]; 
[formatter setDateFormat:@"yyyy"]; 
int i2 = [[formatter stringFromDate:[NSDate date]] intValue]; 


//Create Years Array from 1960 to This year 
years = [[NSMutableArray alloc] init]; 
for (int i=1960; i<=i2; i++) { 
    [years addObject:[NSString stringWithFormat:@"%d",i]]; 
} 

UIPickerView डेटा स्रोत और प्रतिनिधि तरीकों में इनपुट के लिए बिल्कुल सही:

- (NSInteger)numberOfComponentsInPickerView: (UIPickerView*)thePickerView { 
    return 1; 
} 

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    return [years count]; 
} 
- (NSString *)pickerView:(UIPickerView *)thePickerView 
titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    return [years objectAtIndex:row]; 
} 

इंटरफ़ेस

//Data 
NSMutableArray *years; 

बाहर यह है की डाल में घोषणा मत भूलना

enter image description here

here

+0

स्टैक ओवरव्लो पर रॉकिंग .. ग्रेट .. !! क्या आपकी कंपनी आईफोन विकास में फ्रेशर्स को प्रशिक्षण प्रदान कर रही है? –

+0

असल में, नहीं। यह मेरी कंपनी –

+0

में विकसित करने के लिए सिर्फ एक नया विभाग है, मुझे उम्मीद है कि एक प्रोग्रामिंग 101 छात्र कक्षा के दूसरे सप्ताह के बाद वर्ष मूल्यों की एक सरणी कैसे तैयार करेगा। –

3

मैं टिप्पणी नहीं कर सकता से संदर्भित है, लेकिन मैं चारों ओर Wolvorin से जवाब के साथ खेल रहा था और मैं एक तरह से जहां सबसे हाल के वर्षों पिकर के शीर्ष पर होगा करने के लिए फैसला किया। वर्तमान में, उनका कोड हाल के वर्षों में सबसे पुराना है।

सभी मैं परिवर्तन उसकी के बजाय viewDidLoad में मेरी NSMutableArray सेटअप में था:

//Create Years Array from 1960 to This year 
years = [[NSMutableArray alloc] init]; 
for (int i=1960; i<=i2; i++) { 
    [years addObject:[NSString stringWithFormat:@"%d",i]]; 
} 

मैं प्रयोग किया है:

years = [[NSMutableArray alloc] init]; 
for (int i1=i2; i1<=i2 & i1>=1920; i1--) { 
    [years addObject:[NSString stringWithFormat:@"%d",i1]]; 
} 

कौन सा उलट क्रम हाल ही में तारीख से जा रहा में के लिए करता है, फिर 1 9 20 तक पहुंचने तक एक वर्ष (और इसे ऐरे में जोड़ना) घटाएं।

मेरा सूत्र:

int i1=i2; i1<=i2 & i1>=1920; i1-- 
1

बस के साथ इस पोस्ट में मौजूदा जवाब को अद्यतन करने स्विफ्ट 3:

var yearsTillNow : [String] { 
    var years = [String]() 
    for i in (1970..<2018).reversed() { 
     years.append("\(i)") 
    } 
    return years 
} 

बस अपने UIPickerView डेटा स्रोत के लिए इस का उपयोग करें।

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