首页 > 解决方案 > SwiftUI - 使用 DatePicker GraphicalDatePickerStyle 作为只读日历

问题描述

我想显示一个带有一组标记日期的日历(它反映了用户在我的应用程序上一个月内安排的所有预订)。

我试图在不创建日历组件或导入库的情况下做到这一点。所以,在这里我使用DatePicker来自 SwiftUI 的组件和这个配置:

DatePicker(
    "",
    selection: $date,
    displayedComponents: [.date])
.datePickerStyle(GraphicalDatePickerStyle())

在此处输入图像描述

可以用我的数据层上保留的所有天数来填充这个日历吗?

我想要的是类似于日历应用程序所做的事情:

在此处输入图像描述

标签: swiftswiftuiswiftui-datepicker

解决方案


相当棘手,但您可以声明绑定变量以将date值设置为旧变量。

var body: some View {
    let binding = Binding<Date> {
        self.date
    } set: { newDate in
        self.date = Date() // your old value
    }

    DatePicker(
        "",
        selection:binding,
        displayedComponents: [.date])
    .datePickerStyle(GraphicalDatePickerStyle())

}

推荐阅读