在Datepicker中,我已经设置了uidatepicker可以滚动的最小和最大时间,例如,我将3:00 PM设置为最小时间,将8:00 PM设置为最大时间,当我运行该应用程序时,我希望日期选择器显示最小时间而不是当前时间设备的。我在xib文件中没有使用的项目中对UIDatepicker进行了硬编码。我已经设置了最小时间,但是当我从control.tag == 1切换到2时,最小时间会发生变化,而且当我第一次打开应用程序时,日期选择器不会从最小时间开始。
更新:
-(IBAction)notificationButtonChanged:(UIButton *)control
{
if (control.tag == 1)
{
self.selectedButton = control.tag;
[userTimePicker reloadInputViews];
[components setHour:7];;
[components setMinute:00];
NSDate *date1 = [gregorian dateFromComponents:components];
[components setHour:11];
[components setMinute:00];
NSDate *date2 = [gregorian dateFromComponents:components];
[userTimePicker setDatePickerMode:UIDatePickerModeTime];
[userTimePicker setMinimumDate:date1];
[userTimePicker setMaximumDate:date2];
}
if (control.tag == 2)
{
self.selectedButton = control.tag;
[userTimePicker reloadInputViews];
[components setHour:12];
[components setMinute:00];
NSDate *date1 = [gregorian dateFromComponents:components];
[components setHour:17];
[components setMinute:00];
NSDate *date2 = [gregorian dateFromComponents:components];
[userTimePicker setDatePickerMode:UIDatePickerModeTime];
[userTimePicker setMinimumDate:date1];
[userTimePicker setMaximumDate:date2];
}
}
最佳答案
编辑:
int startHour = 7;
int endHour = 11;
NSDate *date1 = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents *components = [gregorian components: NSUIntegerMax fromDate: date1];
[components setHour: startHour];
[components setMinute: 0];
[components setSecond: 0];
NSDate *startDate = [gregorian dateFromComponents: components];
[components setHour: endHour];
[components setMinute: 0];
[components setSecond: 0];
NSDate *endDate = [gregorian dateFromComponents: components];
[userTimePicker setDatePickerMode:UIDatePickerModeTime];
[userTimePicker setMinimumDate:startDate];
[userTimePicker setMaximumDate:endDate];
[userTimePicker setDate:startDate animated:YES];
[userTimePicker reloadInputViews];
关于iphone - 如何设置最小时间每次都显示为UIDatepicker中的默认时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16322437/