刚不久做了个时间的选择pickerview,下面代码主要pickerview代理部分
#pragma mark - pickerView
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 3;
}
//选择器每列个数显示
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
switch (component) {
case 0:
//year
NSLog(@"%d",[yearArray count]);
return [yearArray count];
break;
case 1:
//month
return [monthArray count];
break;
case 2:
//day
return [dayArray count];
break;
default:
return 0;
break;
}
}
//选择器每列内容显示
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
switch (component) {
case 0:
//year
return [yearArray objectAtIndex:row];
break;
case 1:
//month
return [monthArray objectAtIndex:row];
break;
case 2:
//day
return [dayArray objectAtIndex:row];
break;
default:
return @"";
break;
}
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
switch (component) {
case 0:
//year
self.yearSelect = [[yearArray objectAtIndex: row] substringToIndex:4];
if (dayArray!=Nil) {
[dayArray release];
dayArray = nil;
}
dayArray=[calendar dayInMonth:self.monthSelect year:self.yearSelect ];
[dayArray retain];
[picker reloadComponent:2];
[picker selectRow:todayIndex-1 inComponent:2 animated:YES];
self.daySelect = [NSString stringWithFormat:@"%i",todayIndex];
break;
case 1:
//month
self.monthSelect = [NSString stringWithFormat:@"%i",row+1];
if (dayArray!=Nil) {
[dayArray release];
dayArray = nil;
}
dayArray=[calendar dayInMonth:[NSString stringWithFormat:@"%i",row+1] year:[self.yearSelect substringToIndex:4]];
[dayArray retain];
[picker reloadComponent:2];
[picker selectRow:todayIndex-1 inComponent:2 animated:YES];
self.daySelect = [NSString stringWithFormat:@"%i",todayIndex];
break;
case 2:
//day
self.daySelect = [NSString stringWithFormat:@"%i",row+1];
break;
default:
break;
}
}
//实现内容居中显示
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(12.0f, 0.0f, [pickerView rowSizeForComponent:component].width-12, [pickerView rowSizeForComponent:component].height)];
switch (component) {
case 0:
[label setText:[yearArray objectAtIndex:row]];
break;
case 1:
[label setText:[monthArray objectAtIndex:row]];
break;
case 2:
[label setText:[dayArray objectAtIndex:row]];
break;
default:
break;
}
label.backgroundColor=[UIColor clearColor];
label.textAlignment = UITextAlignmentCenter;
return [label autorelease];
}
//设置各列的宽度
-(float)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
{
switch (component) {
case 0:
return 110.0f;
break;
case 1:
return 80.0f;
break;
case 2:
return 80.0f;
break;
default:
return 0.0;
break;
}
}