iOS 6 UIDatePicker计时器允许用户选择0倒计时持续时间

iOS 6 UIDatePicker计时器允许用户选择0倒计时持续时间,ios,uikit,ios6,Ios,Uikit,Ios6,我在UIDatePickerModeCountDownTimer中使用UIDatePicker,允许用户选择持续时间 如果将计时器间隔设置为5分钟,用户将能够选择0小时:0分钟(这是不好的;iOS 5甚至iOS 6中都不允许间隔为1分钟) 现在,我正在通过对更改执行以下操作来修复它: -(void)timerValueChanged { int clockInterval = workoutTimePicker.minuteInterval * 60; if (workoutT

我在UIDatePickerModeCountDownTimer中使用UIDatePicker,允许用户选择持续时间

如果将计时器间隔设置为5分钟,用户将能够选择0小时:0分钟(这是不好的;iOS 5甚至iOS 6中都不允许间隔为1分钟)

现在,我正在通过对更改执行以下操作来修复它:

-(void)timerValueChanged
{
    int clockInterval = workoutTimePicker.minuteInterval * 60;

    if (workoutTimePicker.countDownDuration < clockInterval) {
        workoutTimePicker.countDownDuration = clockInterval;
    }
}
-(无效)时间值已更改
{
int clockInterval=workoutTimePicker.minuteInterval*60;
if(workoutTimePicker.countDownDuration<时钟间隔){
workoutTimePicker.countDownDuration=时钟间隔;
}
}

但这会让压路机跳起来。如何设置滚轮动画?

目前没有设置倒计时持续时间:动画:,因此我们必须使用
设置日期:动画:

我们必须创建一个具有当前日期/月份/年份的
NSDate
对象,以允许我们使用所需的值填充分钟组件,比如说它是
workoutTimePicker.minuteInterval

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]];
    components.hour = 0;
    components.minute = workoutTimePicker.minuteInterval; // how much minutes you want
    components.second = 0;
NSDate * resetedMinsDate = [calendar dateFromComponents:components];        
因此,对于新日期,我们只需要设置选择器的日期:

[workoutTimePicker setDate:resetedMinsDate animated:YES];
在尝试的过程中,我找到了一个更简洁的解决方案(使用swift):


我刚刚进行了一次快速测试(在iPad模拟器iOS 6上),它不允许我将倒计时设置为0:00。。。您可以短暂地选择它,但它会立即设置回0:01的动画。你使用的是模拟器还是实际设备?啊,有一个细节很重要。您需要将间隔设置为5分钟。如果这样做,这将在模拟器和设备中发生。(现在编辑问题)谢谢!这比我想出的黑客方法要有效得多。
let minDate = Calendar.current.startOfDay(for: Date()) + clockInterval
datePicker.setDate(minDate, animated: true)