我的SwiftUI视图中有一个日期选择器。我希望日期选择器在日期的封闭范围内工作。
这是代码。
struct ContentView: View {
@State var selectedDate: Date = Date(timeIntervalSince1970: 662731200)
var body: some View {
print("start date - \(startDate.inWords)")
print("end date - \(endDate.inWords)")
return DatePicker("", selection: $selectedDate,
in: startDate...endDate,
displayedComponents: .date)
.labelsHidden()
}
var startDate: Date {
Calendar.current.date(byAdding: .year, value: -60, to: Date()) ??
Date() - Double(1892000000)
}
var endDate: Date {
Calendar.current.date(byAdding: .year, value: -18, to: Date()) ??
Date() - Double(567648000)
}
}
extension Date {
var inWords: String {
let formatter = DateFormatter()
formatter.dateStyle = .long
return formatter.string(from: self)
}
}
开始日期和结束日期如下打印在控制台中。
start date - June 8, 1960
end date - June 8, 2002
当我滚动到该范围之外的日期时,它将带我回到该范围内的最后一个日期。
是否可以防止滚动超出范围?