在 SwiftUI 中创建具有特定日期的 DatePicker

Posted

技术标签:

【中文标题】在 SwiftUI 中创建具有特定日期的 DatePicker【英文标题】:Create DatePicker with specific date in SwiftUI 【发布时间】:2021-09-19 08:17:51 【问题描述】:

我可以创建一个显示特定日期的DatePicker 吗?

这是我的代码:

struct OnlineShop: View 
  @State private var date = Date()
  var body: some View 
    DatePicker(
      "Start Date",
      selection: $date,
      displayedComponents: [.date]
    )

此代码在选择器上显示当前日期。我想显示一个具体的日期,例如 1987 年 8 月 29 日。

我该怎么做?

【问题讨论】:

【参考方案1】:

当然,只需 create your own date 并设置它。

struct OnlineShop: View 
    @State private var date = Date()
    
    var body: some View 
        Text("Hello, Online!")
        
        DatePicker(
            "Start Date",
            selection: $date,
            displayedComponents: [.date]
        )
        .onAppear 
            let calendar = Calendar(identifier: .gregorian)
            let components = DateComponents(year: 1987, month: 8, day: 29)
            if let customDate = calendar.date(from: components) 
                self.date = customDate /// set customDate to date
            
        
    

结果:

【讨论】:

【参考方案2】:

这是可能的。您可以使用带有Calendar.currentDateComponents 初始化程序指定任何组件,例如年、月、日、小时等。

您需要像这样初始化date 变量:

@State private var date: Date = Calendar.current.date(from: DateComponents(year: 1987, month: 8, day: 27)

【讨论】:

以上是关于在 SwiftUI 中创建具有特定日期的 DatePicker的主要内容,如果未能解决你的问题,请参考以下文章

在R中创建具有特定迭代的列表

如何在 swiftUI 中创建具有多列的列表?

SwiftUI - 日期选择器未正确显示

如何在 swiftUI 中创建仅选择年份的 DatePicker,并且我希望它在预先指定的年份范围内?

如何在 Ruby 中创建一个新的 Date 实例

如何在JPQL中创建“findBy Date”命名查询?