2012-01-16 51 views
4

我将我的UIDatepicker timeInterval设置为30分钟,因此它显示为30,60(重复)。我真的不希望它重复,只显示2个选项(如AM/PM)。有没有办法做到这一点,而不是从头开始创建它?UIDatePicker非连续分钟

谢谢!

+1

同样的问题在这里..没有人有答案? – 2012-05-11 19:29:23

+0

我无法做到这一点。我只是没有重写它,因为它会花费太多时间。 – user754905 2012-05-11 20:08:24

回答

1

为什么不使用UIPicker呢?

UIPickerView *pick=[[UIPickerView alloc] initWithFrame:CGRectMake(300, datep.frame.origin.y, datep.frame.size.width, datep.frame.size.height)]; 
[pick setDelegate:self]; 
[pick setDataSource:self]; 
[pick setShowsSelectionIndicator:YES]; 
[self.view addSubview:pick]; 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ 
return 3; 
} 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ 
if(component==0){ 
    return 12; 
}else{ 
    return 2; 
} 

return 2; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ 
if(component==1){ 
    if(row==1) 
     return @"30"; 
    else 
     return @"00"; 
    } 
else if(component==0){ 
    return [NSString stringWithFormat:@"%d", row+1]; 
}else{ 
    if(row==1) 
     return @"AM"; 
    else 
     return @"PM"; 
    }  
} 

-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{ 
return 50; 
} 

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{ 
return 50; 
}