xcode - 为什么 datePicker View 的转换不能按预期工作?
问题描述
如果我尝试打开此 DatePicker,则视图会在过渡时跳跃,然后到达固定位置。控制台中还有一条很长的错误消息...“无法同时满足约束。”...
如果我只显示 .date 组件,就不存在这个问题。是内部问题吗?如果是,我如何存档相同的行为,因为我想要日期+时间选择器而没有详细的弹出屏幕,以便更快地选择。
谢谢你的帮助 :)
https://imgur.com/a/IEy2syY(在第二个按钮点击有错误的过渡)
struct ContentView: View {
@State var toggle = false
@State var date = Date(timeIntervalSinceNow: 0)
var body: some View {
ZStack{
Button("sdflkj"){
toggle.toggle()
}
VStack{
Spacer()
if toggle{
DatePicker("lsadjf", selection: $date, displayedComponents: [.date,.hourAndMinute])
.labelsHidden()
.datePickerStyle(GraphicalDatePickerStyle())
}
}
}
}
}
解决方案
这似乎是由于重叠Button
and引起的错误DatePicker
。
用 iPhone 12 模拟器测试
struct ContentView: View {
@State var toggle = false
@State var date = Date(timeIntervalSinceNow: 0)
var body: some View {
ZStack{
Button("Button"){
// add `withAnimation()`
withAnimation(.easeIn) {
toggle.toggle()
}
}
.offset(y: -50) // set y offset for prevent overlapping of Button and DatePicker
VStack{
Spacer()
if toggle {
DatePicker("", selection: $date, displayedComponents: [.date,.hourAndMinute])
.padding()
.labelsHidden()
.datePickerStyle(GraphicalDatePickerStyle())
.zIndex(5) // or add .zIndex for prevent overlapping of Button and DatePicker
}
}
}
}
}
推荐阅读
- json - 由于字符周围的值无效,无法解码 json
- postgresql - Postgres 中的多节点集群
- php - 使用 PHP 在 execl 中过滤切片器
- vbscript - 如何直接访问从 VBScript 中的函数返回的数组
- scala - 在 Spark 数据集中添加 ADT 列?
- php - Laravel 与 Symfony | 模型属性
- java - Google IME 或 Redhat 日语 IME 候选窗口未正确定位 Swing 文本字段
- c++ - 提升坏词法转换:将字符串转换为无符号长长时,源类型值无法解释为目标
- javascript - 将自定义按钮添加到数据表不起作用
- spring - Spring Boot + Spring Security + Spring Rest 问题:“拒绝访问”错误