Определите, находится ли встроенный индикатор даты только для даты, в настоящее время в режиме просмотра календаря или в режиме быстрого просмотра месяца/года

#ios #swift #datepicker #uikit

#iOS #быстрый #выбор даты #уикит

Вопрос:

В настоящее время у меня есть встроенный стиль DatePicker с режимом «Только дата«.

режим просмотра календаря

введите описание изображения здесь

Средство выбора даты наблюдает за событием изменения значения и будет выполнено datePickerValueChanged , если произойдет событие изменения значения.

На приведенном выше скриншоте, если я попытаюсь нажать на дату 16, будет выполнен следующий обратный вызов функции

 @IBAction func datePickerValueChanged(_ datePicker: UIDatePicker) {  print("gt;gt; datePickerMode =gt; (datePicker.datePickerMode.rawValue)")  print("gt;gt; datePickerStyle =gt; (datePicker.datePickerStyle.rawValue)") }  

Однако, если я нажму на локальную надпись слева вверху «Февраль 2021» (не вызовет datePickerValueChanged ), она станет следующей

режим поворотного просмотра за месяц/год

введите описание изображения здесь

Если я поверну вращающийся вид, то же datePickerValueChanged самое будет выполнено!

Я хотел бы выполнить некоторые действия, только если пользователь нажмет на дату в режиме просмотра календаря.

Так как оба представления вызовут событие изменения значения, а проверка datePicker.datePickerMode и datePicker.datePickerStyle. не сильно помогает.

У вас есть какие-либо идеи о том, как я могу определить, находится ли в настоящее время только встроенный индикатор даты в режиме просмотра календаря или в режиме быстрого просмотра месяца/года?

Комментарии:

1. Итак, если пользователь хочет выбрать тот же день, но за предыдущий месяц (15 января), он должен нажать 15 после изменения месяца, даже если он уже выбран? Может быть, лучше реагировать на все изменения.