Вопрос по objective-c, ios, uidatepicker – UIDatePicker установка минимального и максимального часа

0

Как установить минимальный и максимальный час для UIDatePicker? На всех это возможно?

Я знаю, как установить минимальную и максимальную дату:

[datePicker setMinimumDate: today]; [datePicker setMaximumDate: nextMonthDay];

Чего я хочу достичь, так это того, что пользователь может выбирать с 8 утра до 10 вечера каждый день.

Благодарю.

Ваш Ответ

4   ответа
1
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
0

 10 вечера в максимальную дату.NSDateFormatter поможет вам создать ваши объекты даты, как вы хотите.

Будет установлена только первая дата, последняя дата, время, а не все даты в диапазоне. Streetboy
1

следующий код поможет вам.

    - (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];

    }
0

ВРЕМЯ РЕЖИМА "иначе выбранный ответ должен работать не интуитивно

    // 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 

Похожие вопросы