在 iPhone 8 上选择时间时,日期选择器崩溃。TimeZone 是在选择器中更改的@State 变量。用户可以选择日期。但是当用户选择时间时,日期选择器会崩溃,因此无法设置时间。我已经在 iPhone X 和 iPhone 12 pro Max 上对此进行了测试,效果很好。
然而 Xcode 总是打印出这些警告:
iPhone 8 模拟器也能正常工作。TestFlight 的用户显示无法在 iPhone 8 上选择时间的反馈和视频。
这些警告是日期选择器崩溃的结果吗?如果是这样,如何抑制这些警告?设置时区时我是否正确使用了 .environment 修饰符?
下面是两个日期选择器,它们都有相同的问题。
我尝试过但不起作用的事情:
将视图提取为子视图
删除 .environment 修饰符
删除 .id 修饰符
移除动画修改器
删除显示组件参数
Section(footer: Text("Event is being set in \(selectedLocation(locationIndex: site).timeOffSet)")){
Toggle(isOn: $isAllDay){
Text("All-day")
}
VStack{
DatePicker(selection: $date, displayedComponents: self.isAllDay ? .date : [.hourAndMinute, .date], label: {
Text("Date")
}).environment(\.timeZone, (TimeZone(identifier: timeZone) ?? TimeZone(identifier: …Run Code Online (Sandbox Code Playgroud)