2012-08-18 10 views
12

¿Hay alguna manera de tener un año de exhibición UIDatePicker solamente?UIDatePicker para mostrar solo el año

+0

Ayudaría a comprender más si puede pegar sus códigos. –

+0

Solo usa un selector simple. –

Respuesta

5

No puede hacer esto con UIDatePicker, pero puede hacerlo con UIPicker.

lo necesario para crear una matriz de los años, y añadirlos a la UIPicker utilizando los delegados UIPicker

Here 's un tutorial.

14

Tengo un pequeño código que estaba a punto de eliminar, pero el fragmento es mejor si está en línea en alguna parte. No es sorprendente, ¡pero se puede buscar!

código de Objective-C para crear una matriz de todos los años desde 1960. Perfecto para la entrada en un 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]]; 
} 

la fuente de datos UIPickerView y delegadas métodos:

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

No se olvide de la declaración en la interfaz

//Data 
NSMutableArray *years; 

El cabo de la misma es poner

enter image description here

referencia desde here

+0

Rocking en StackOverflow ... ¡¡Genial ... !! ¿Está su empresa brindando capacitación a los recién llegados en el desarrollo de iPhone? –

+0

En realidad, No. Es solo un nuevo departamento para desarrollar en mi compañía –

+0

Espero que un estudiante de programación 101 sepa cómo crear una matriz de valores anuales después de la segunda semana de la clase. –

3

que no puedo comentar, pero yo estaba jugando con la respuesta por Wolvorin y yo decidimos hacer un camino donde el año más reciente sería en la parte superior del Selector. Actualmente, su código es más antiguo que los años más recientes.

Todos los cambios que estaba en mi configuración NSMutableArray en el viewDidLoad en lugar de su:

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

que utilizan:

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

¿Qué hace el en el orden inverso al pasar de la fecha más reciente, luego restar un año (y agregarlo a la matriz) hasta que llegue a 1920.

Mi fórmula:

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

Sólo la actualización de la respuesta existente en este post con Swift 3:

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

sólo tiene que utilizar esto para su UIPickerView fuente de datos.

Cuestiones relacionadas