DEV Community

GoyesDev
GoyesDev

Posted on

[SUI] DatePicker

Usar DatePicker para seleccionar una sola fecha.

El estilo por defecto del Picker permite elegir la fecha con un calendario y la hora con una rueda.

struct ContentView: View {
  @State private var date = Date()

  var body: some View {
      DatePicker(
          "Start Date",
          selection: $date,
          displayedComponents: [.date]
      )
  }
}
Enter fullscreen mode Exit fullscreen mode


struct ContentView: View {
  @State private var date = Date()

  var body: some View {
      DatePicker(
          "Start Date",
          selection: $date,
          displayedComponents: [.date, .hourAndMinute]
      )
  }
}
Enter fullscreen mode Exit fullscreen mode

Rango de fechas

El rango de fechas puede ser cerrado o abierto. El siguiente ejemplo presenta un DatePicker que permite elegir fechas desde hoy hasta un futuro distante por medio del rango Date().... En caso de necesitar lo contrario (i.e. desde un pasado distante hasta hoy) se usa ...Date().

struct ContentView: View {
  @State private var date = Date()

  var body: some View {
      DatePicker(
          "Start Date",
          selection: $date,
          in: Date()...,
          displayedComponents: [.date]
      )
  }
}
Enter fullscreen mode Exit fullscreen mode

Cambiar el estilo del DatePicker

Usar datePickerStyle(_:) para definir el estilo de tipo DatePickerStyle, que puede tomar valores predefinidos:

  • automatic
  • compact: Muestra un botón para revelar un calendario o rueda.
  • graphical: Directamente se muestra el calendario.
  • wheel: Directamente se muestra una rueda.
struct ContentView: View {
  @State private var date = Date()

  var body: some View {
    VStack {
      Text("Fecha: \(date.formatted(.dateTime.day().month()))")
      DatePicker(
        "Start Date",
        selection: $date,
        in: Date()...,
        displayedComponents: [.date]
      )
      .datePickerStyle(.wheel)
    }
  }
}
Enter fullscreen mode Exit fullscreen mode


struct ContentView: View {
  @State private var date = Date()

  var body: some View {
    VStack {
      Text("Fecha: \(date.formatted(.dateTime.day().month()))")
      DatePicker(
        "Start Date",
        selection: $date,
        in: Date()...,
        displayedComponents: [.date]
      )
      .datePickerStyle(.graphical)
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)