iOS 6 UIDatePicker计时器允许用户选择0倒计时持续时间
我在UIDatePickerModeCountDownTimer中使用UIDatePicker,允许用户选择持续时间 如果将计时器间隔设置为5分钟,用户将能够选择0小时:0分钟(这是不好的;iOS 5甚至iOS 6中都不允许间隔为1分钟) 现在,我正在通过对更改执行以下操作来修复它: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
-(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)