2

如何在 UIDatePickerModeCountDownTimer 模式下通过代码从 UIDatePicker 获取/设置小时和分钟?

情况:

  • 我有一个界面,用户只选择小时和分钟。然后,他保存信息(因此,我必须通过代码从 UIDatePicker 获取小时和分钟以保存在数据库中)。

  • 当用户编辑之前保存的信息时,我想使用保存的小时/分钟启动界面(因此,我必须通过代码使用 DB 中的值设置 UIDatePicker 小时和分钟)。

如何在 UIDatePickerModeCountDownTimer 模式下使用 UIDatePicker 执行此操作?

提前致谢。

4

1 回答 1

20

当日期选择器模式设置为 时,您必须使用该countDownDuration属性。UIDatePickerUIDatePickerModeCountDownTimer

倒计时持续时间以秒为单位,因此您可以从 NSDate 计算如下(要对其进行测试,只需将其放入viewDidLoadany 中UIViewController):

// Create a new date with the current time
NSDate *date = [NSDate new];
// Split up the date components
NSDateComponents *time = [[NSCalendar currentCalendar] 
                            components:NSHourCalendarUnit | NSMinuteCalendarUnit 
                            fromDate:date];
NSInteger seconds = ([time hour] * 60 * 60) + ([time minute] * 60);

UIDatePicker *picker = [UIDatePicker new];
[picker setDatePickerMode:UIDatePickerModeCountDownTimer];
[picker setCountDownDuration:seconds];
[[self view] addSubview:picker];

因此,如果当前时间是 17:28,UIDatePicker则会显示“17 小时 28 分钟”。只需将 NSDate 替换为从数据库中获得的 NSDate 即可,您应该进行排序:)

于 2010-03-13T17:31:42.070 回答