SwiftUI日期选择器

x8goxv8g  于 2023-06-04  发布在  Swift
关注(0)|答案(1)|浏览(181)

按钮单击时的DatePicker。
我已经尝试了很多代码,但没有一个对我有效,

HStack {
   Image(systemName: "calendar")
        
    Button(action: {
       
    }, label: {
         Text("Today")
           .font(.system(size: 17, weight: .semibold, design: .rounded))          
    })
    
    Spacer()
    Image(systemName: "arrowtriangle.down.fill")
        .font(.system(size: 16, weight: .semibold))
}

这是我的按钮代码,我想实现的日期,当用户点击今天的文本。真的需要你的帮助

fhg3lkii

fhg3lkii1#

使用SwiftUI提供的DatePicker
声明状态变量--一个用于存储日期,另一个用于有条件地显示或隐藏DatePicker

@State var date = Date()
@State var isDatePickerVisible = false

当用户单击按钮时,将isDatePickerVisible设置为true

Button(action: {
       isDatePickerVisible = true
}, label: {
     Text("Today")
       .font(.system(size: 17, weight: .semibold, design: .rounded))          
})

isDatePickerVisible标志设置为true时显示DatePicker。单击完成按钮将再次隐藏DatePicker

if isDatePickerVisible {
    HStack {
        DatePicker("", selection: $date)
            .datePickerStyle(GraphicalDatePickerStyle())
            .frame(maxHeight: 400)

        Button("Done", action: {
            isDatePickerVisible = false
        })
    }
}

您还可以使用以下代码在Text中显示选定的日期。

Text("Date is \(date.formatted(date: .long, time: .omitted))")

但是,如果您希望在用户单击Today时显示当前日期,而不是让用户选择日期,请使用以下代码:

if isDatePickerVisible {
    Text(Date.now, format: .dateTime.day().month().year())
}

相关问题