【问题标题】:UIDatePicker in UIDatePickerModeCountDownTimer mode: how to get/set the hours and minutes via code?UIDatePickerModeCountDownTimer 模式下的 UIDatePicker:如何通过代码获取/设置小时和分钟?
【发布时间】:2010-03-13 16:09:20
【问题描述】:

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

情况:

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

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

如何在 UIDatePickerModeCountDownTimer 模式下使用 UIDatePicker?

提前致谢。

【问题讨论】:

    标签: iphone objective-c uidatepicker


    【解决方案1】:

    当日期选择器模式设置为UIDatePickerModeCountDownTimer 时,您必须在UIDatePicker 中使用countDownDuration 属性。

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

    // 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 即可:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多