Установить дату по умолчанию для DatePicker в SwiftUI? - PullRequest
1 голос
/ 02 марта 2020

У меня есть этот DatePicker внутри VStack, работает нормально:

VStack {
    DatePicker(selection: $birthDate, displayedComponents: .date) {
                Text("")
            }.padding(10)
            .labelsHidden()
            .datePickerStyle(WheelDatePickerStyle())
}

Я бы хотел иметь возможность установить дату по умолчанию 40 лет назад, чтобы пользователю не пришлось пока что год крутится (большинство людей не новорожденные). Это можно сделать с помощью DatePicker, как показано в этом SO-ответе . Я не знаю, как реализовать это в SwiftUI. Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 02 марта 2020

Почему бы просто не так?

struct ContentView: View {
    @State private var birthDate: Date = Calendar.current.date(byAdding: DateComponents(year: -40), to: Date()) ?? Date()

    var body: some View {
        VStack {
            DatePicker(selection: $birthDate, displayedComponents: .date) {
                Text("")
            }
            .padding(10)
            .labelsHidden()
            .datePickerStyle(WheelDatePickerStyle())
        }
    }
}
0 голосов
/ 02 марта 2020

Вы должны инициализировать birthDate следующим образом (протестировано и работает с Xcode 11.2 / iOS 13.2)

@State private var birthDate: Date

init() {
    _birthDate = State<Date>(initialValue: Calendar.current.date(byAdding: 
                              DateComponents(year: -40), to: Date()) ?? Date())
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...