swift - 如何在 SwiftUI 中给 DatePicker 一个分钟间隔
问题描述
有谁知道如何给分钟 DatePicker 一个间隔?我试图只显示 15 的倍数(0、15、30、45)。这是否只有通过与 UIKit 交互才能实现?
我相信它没有使用该in: ...Date()
零件,至少我想不出解决方案。这是我的片段:
DatePicker(
"",
selection: $selectedDate,
/*in: ...Date(),*/
displayedComponents: .hourAndMinute
)
非常感谢!
解决方案
使用两个选择器,一个用于小时,一个用于分钟,然后转换为 Date() 怎么样?它并不漂亮,但这只是其中的一部分:
struct ContentView: View {
@State private var hour = 1
@State private var minute = 0
let minutes = [0, 15, 30, 45]
var body: some View {
GeometryReader { geometry in
HStack {
Picker("Hour", selection: self.$hour) {
ForEach(1...12, id: \.self) {
Text("\($0)")
}
}
.labelIsHidden()
.frame(maxWidth: geometry.size.width / 4)
.clipped()
Picker("Minutes", selection: self.$minute) {
ForEach(self.minutes, id: \.self) { minute in
Text(minute == 0 ? " : 0\(minute)" : " : \(minute)")
}
}
.labelIsHidden()
.frame(maxWidth: geometry.size.width / 4)
.clipped()
}
}
}
}
推荐阅读
- sql-server - 授予 SQL Server:应用程序池或 IUSR?
- heroku - 需要帮助了解使用 PG 备份导入 Heroku Postgres 数据库
- python - 字幕中的多种大小字体
- java - 如何在 SQL 查询中查找条件并将其 1=1 替换为 Java
- python - Django为列表中的*每个*项目排除查询集__in
- reactjs - 为什么我不能在 React Application 中显示数组数据?
- java - 如何检查声纳规则集是否包括对 DAO 层查询的检查
- amqp - AMQP:按声明顺序处理不同的队列
- amazon-web-services - AWS 实例在美国区域不起作用
- c# - Asp.Net Core 中的 SignalR 配置