Iphone 我想更改UIDatePicker';动态选择datePickerMode
我想能够一个日期选择器可以输入月日年时分。 我知道如果有两个UIDatePicker对象,这是可能的。 例如 UIDATECOPJ1//月日年 UIDATECOPJ2//一小时一分钟 但我不想为一个日期输入使用两个UIDatePicker:月-日-年-小时-分钟。 所以我做了一个UIDatePicker和一个UIButton。 该按钮用于更改UIDatePicker的datePickerMode 选择器的数字可以更改。[mm | dd | yyyy][hh:mm] 但是当选择器的模式发生如下变化时 [hh:mm]->[mm | dd | yyyy]->[hh:mm] 选择器的小时日期变为00:00,即使模式更改前设置为11:59 为什么? 无论模式如何改变,月-日-年都不会改变 选择器的小时日期变为00:00,即使模式更改前设置为11:59。为什么?Iphone 我想更改UIDatePicker';动态选择datePickerMode,iphone,uidatepicker,Iphone,Uidatepicker,我想能够一个日期选择器可以输入月日年时分。 我知道如果有两个UIDatePicker对象,这是可能的。 例如 UIDATECOPJ1//月日年 UIDATECOPJ2//一小时一分钟 但我不想为一个日期输入使用两个UIDatePicker:月-日-年-小时-分钟。 所以我做了一个UIDatePicker和一个UIButton。 该按钮用于更改UIDatePicker的datePickerMode 选择器的数字可以更改。[mm | dd | yyyy][hh:mm] 但是当选择器的模式发生如下变化
可能是因为日期选择器在mm | dd | yyyy模式下存储时间设置为午夜的日期。因此,您必须将所选时间存储在单独的
NSDate
对象中,当用户从mm | dd | yyyy切换到hh:mm时,将日期选择器的日期设置为正确的日期和时间(通过NSDateComponents
从一个日期提取时间和分钟,从另一个日期提取年/月/日,并用所有组件合成一个新日期)。感谢您的回答
我在原始代码中添加了3行,如下所示。到目前为止似乎还不错
- (IBAction) switchDateTime {
switch (datePicker_.datePickerMode) {
case UIDatePickerModeDate: {
datePicker_.datePickerMode = UIDatePickerModeDateAndTime;
[swBtn_ setTitle:NSLocalizedString(@"swichBtn_date", @"") forState:UIControlStateNormal];
} break;
case UIDatePickerModeDateAndTime: {
NSDate *tmp = [datePicker_.date copy];//<- added
datePicker_.datePickerMode = UIDatePickerModeDate;
datePicker_.date = tmp; //<- added
[tmp release];
[swBtn_ setTitle:NSLocalizedString(@"swichBtn_time", @"") forState:UIControlStateNormal];
} break;
default:
assert(0);
break;
}
}
-(iAction)switchDateTime{
开关(日期选择器\日期选择器模式){
案例UIDatePickerModeDate:{
datePicker_u2;.datePickerMode=UIDatePickerModeDateAndTime;
[swBtn_uu设置标题:NSLocalizedString(@“swichBtn_u日期”,@“”)用于状态:UIControlStateNormal];
}中断;
案例UIDatePickerModeDateAndTime:{
NSDate*tmp=[datePicker_.date copy]//