如何將最小和最大小時數設置爲UIDatePicker?完全有可能嗎?UIDatePicker設置最小和最大小時數
我知道如何設置最小和最大日期:
[日期選擇器setMinimumDate:今天] [datePicker setMaximumDate:nextMonthDay];
我想實現的是在選擇器用戶可以選擇從上午8點到晚上10點每一天。
謝謝。
如何將最小和最大小時數設置爲UIDatePicker?完全有可能嗎?UIDatePicker設置最小和最大小時數
我知道如何設置最小和最大日期:
[日期選擇器setMinimumDate:今天] [datePicker setMaximumDate:nextMonthDay];
我想實現的是在選擇器用戶可以選擇從上午8點到晚上10點每一天。
謝謝。
希望以下代碼可以幫助您。
- (IBAction)dataPickerValueChanged:(UIDatePicker *)sender {
NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:NSHourCalendarUnit fromDate:[testDatePicker date]];
if ([dateComponents hour] > 8 && [dateComponents hour] < 22) {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error!" message:@"This time cant be selected" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles: nil];
[alert show];
return;
}
lblDate.text = [sender date];
}
您必須確保您的最低日期時間爲上午8點&最晚日期的晚上10點。 NSDateFormatter將幫助你創建你想要的日期對象。
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSIntegerMax fromDate:self.datePicker.date];
[components setHour:hour];
[components setMinute:minutes];
[components setSeconds:seconds];
NSDate *date [[NSCalendar currentCalendar] dateFromComponents:components];
self.datePicker.minimumDate = date;
//same for maximumDate do this.
不要只在你的回答中張貼代碼,你需要解釋它。 – EternalHour
該作品在 「時間模式」,否則選擇的答案應該工作unintuitively雖然
// minimum time
components.hour = 0
components.minute = 0
let minTime = calendar.date(from: components)
// max time
components.hour = 23
components.minute = 59
let maxTime = calendar.date(from: components)
// selected value current time or saved time
let selectedDate = Date() // or saved time
let nowComp = calendar.dateComponents([.hour, .minute], from: selectedDate)
components.hour = nowComp.hour
components.minute = nowComp.minute
let selectedTime = calendar.date(from: components)!
發揮的價值觀,並且使用如下
datePicker.datePickerMode = .time
datePicker.date = selectedTime
datePicker.minimumDate = minTime
datePicker.maximumDate = maxTime
它將僅有第一次約會的最後日期時間不是所有日期範圍內的所有日期 – Streetboy