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

rei*_*man 2 iphone objective-c uidatepicker

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

情况:

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

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

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

提前致谢.

Pau*_*rro 20

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

倒计时持续时间以秒为单位,因此您可以按照以下方式从NSDate计算它(测试它只是将其放入viewDidLoad任何一个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];
Run Code Online (Sandbox Code Playgroud)

因此,如果当前时间是17:28,UIDatePicker则显示"17小时28分钟".用你从数据库中获得的NSDate替换NSDate,你应该排序:)