You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让SwiftUI的DatePicker实现日历式展开/折叠的紧凑切换?

简化实现SwiftUI内嵌日历式DatePicker

要实现你想要的内嵌日历效果,不用找复杂的第三方或自定义组件,SwiftUI原生的DatePicker就支持直接切换成内嵌模式,只需要添加一个简单的样式配置即可。

修改你原有的代码,只需要给DatePicker加上.datePickerStyle(.graphical)(这是实现内嵌日历的关键配置),调整后的代码如下:

Section(header: CustomText("Schedule Time")){
    DatePicker("Select Date", selection: $wakeUp, in: Date()...)
        .datePickerStyle(.graphical) // 设置为图形化内嵌日历样式
        .background(.white)
        .cornerRadius(10)
        .accentColor(.purple)
}

补充优化选项:

  • 如果不想显示默认的"Select Date"标签,可以自定义触发文本,同时保留内嵌日历:
    DatePicker(selection: $wakeUp, in: Date()..., displayedComponents: .date) {
        CustomText("选择日期") // 自定义显示文本,点击可操作日历
    }
    .datePickerStyle(.graphical)
    .background(.white)
    .cornerRadius(10)
    .accentColor(.purple)
    
  • 这个方案完全基于SwiftUI原生API,没有额外依赖,代码简洁易维护,能完美适配你当前的List+Section布局,替换原有代码就能直接得到内嵌日历的效果。

内容的提问来源于stack exchange,提问作者Haifa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 13:26:01