SwiftUI - Apple Calendar 中的 DatePicker 风格
SwiftUI - DatePicker-style like in Apple Calendar
我正在尝试构建一个设计类似于 Apple Calendar DatePicker 的 DatePicker,当您创建新的日历条目并单击 date/time 时:DatePicker 会弹出 所选日期行。
到目前为止,我实现的是让 DatePicker 出现在列表的同一行中。这确实有效,但感觉不顺畅。此外,我希望第一个 DatePicker 关闭,当另一个 DatePicker 打开并且找不到在 SwiftUI 中以编程方式执行它的命令时:
List {
Section(header:Text("Notification")){
HStack {
Text("Activate")
Spacer()
Toggle(isOn: toggle) {Text("") }
}
HStack {
Text("Mo. - Do.")
Spacer()
DatePicker("", selection: dateMoDo, displayedComponents: .hourAndMinute)
.colorInvert()
.colorMultiply(Color.red)
.labelsHidden()
}
HStack {
Text("Freitags")
Spacer()
DatePicker("", selection: dateFr, displayedComponents: .hourAndMinute)
.colorInvert()
.colorMultiply(Color.red)
.labelsHidden()
}
}
}.listStyle(GroupedListStyle())
日期选择器知道要保留数据和相关标题。您不需要添加额外的文本
代码:
import SwiftUI
import UIKit
struct ContentView: View {
@State private var selectedDate = Date()
var body: some View {
Form {
Section {
DatePicker(
selection: $selectedDate,
displayedComponents: .hourAndMinute,
label: { Text("Mo. - Do.") }
).colorInvert().colorMultiply(Color.red)
DatePicker(
selection: $selectedDate,
displayedComponents: .hourAndMinute,
label: { Text("Freitags") }
).colorInvert().colorMultiply(Color.red)
}
}
}
}
我正在尝试构建一个设计类似于 Apple Calendar DatePicker 的 DatePicker,当您创建新的日历条目并单击 date/time 时:DatePicker 会弹出 所选日期行。
到目前为止,我实现的是让 DatePicker 出现在列表的同一行中。这确实有效,但感觉不顺畅。此外,我希望第一个 DatePicker 关闭,当另一个 DatePicker 打开并且找不到在 SwiftUI 中以编程方式执行它的命令时:
List {
Section(header:Text("Notification")){
HStack {
Text("Activate")
Spacer()
Toggle(isOn: toggle) {Text("") }
}
HStack {
Text("Mo. - Do.")
Spacer()
DatePicker("", selection: dateMoDo, displayedComponents: .hourAndMinute)
.colorInvert()
.colorMultiply(Color.red)
.labelsHidden()
}
HStack {
Text("Freitags")
Spacer()
DatePicker("", selection: dateFr, displayedComponents: .hourAndMinute)
.colorInvert()
.colorMultiply(Color.red)
.labelsHidden()
}
}
}.listStyle(GroupedListStyle())
日期选择器知道要保留数据和相关标题。您不需要添加额外的文本
代码:
import SwiftUI
import UIKit
struct ContentView: View {
@State private var selectedDate = Date()
var body: some View {
Form {
Section {
DatePicker(
selection: $selectedDate,
displayedComponents: .hourAndMinute,
label: { Text("Mo. - Do.") }
).colorInvert().colorMultiply(Color.red)
DatePicker(
selection: $selectedDate,
displayedComponents: .hourAndMinute,
label: { Text("Freitags") }
).colorInvert().colorMultiply(Color.red)
}
}
}
}