Determina si un selector de fechas en línea solo para fechas, se encuentra actualmente en un modo de vista de calendario o en un modo de vista abreviada de mes/año rotativo.
Actualmente, tengo un estilo en línea DatePicker
con el modo solo de Date
.
Modo de vista de calendario
La DatePicker está observando el evento de cambio de valor y ejecutará datePickerValueChanged
si ocurre el evento de cambio de valor.
Para la captura de pantalla anterior, si intento tocar la fecha 16, se ejecutará la siguiente función de devolución de llamada.
Sin embargo, si toco en la esquina superior izquierda local “Febrero 2021” (no causará datePickerValueChanged
), se convertirá en lo siguiente.
Modo de vista giratoria de mes / año
Si giro la vista giratoria, ¡también se ejecutará datePickerValueChanged
!
Me gustaría realizar alguna acción solo si el usuario toca una fecha durante el modo de vista de calendario.
Dado que ambas vistas activarán el evento de cambio de valor y comprobar datePicker.datePickerMode
y datePicker.datePickerStyle
no ayuda mucho.
¿Tienes alguna idea de cómo puedo determinar si un DatePicker en línea solo de fecha está actualmente en modo de vista de calendario o en modo de vista giratoria de mes / año?
davy.ai
Solución para determinar el modo de vista del Selector de fecha
Una forma de determinar si un Selector de fecha en línea solo para fechas se encuentra actualmente en el modo de vista de calendario o en el modo de vista de giro de mes/año abreviado es mediante el uso de la propiedad
subviews
delUIDatePicker
.En el modo de vista de calendario, el
UIDatePicker
tiene una subvista de tipoUIPickerView
, mientras que en el modo de vista de giro, tiene subvistas de tipoUIPickerView
yUIButton
.Por lo tanto, podemos verificar la existencia de subvistas
UIButton
para saber si el Selector de fecha se encuentra actualmente en el modo de vista de giro o no.Aquí tienes un ejemplo de fragmento de código que puedes usar:
Puedes llamar a esta función dentro de la función
datePickerValueChanged
y ejecutar la acción deseada en función del valor de retorno.