【问题标题】:Swiftui - Days' name is missing if you show and hide DatePickerSwiftui - 如果显示和隐藏 DatePicker,则缺少 Days 名称
【发布时间】:2021-11-23 19:14:32
【问题描述】:

我有一个默认隐藏的GraphicalDatePickerStyle DatePicker。当你点击一个按钮时,它就会显示出来。

它曾经在 iOS14 上工作。但在 iOS15 上,天的名称不见了。

struct ContentView: View {
    @State var isDatePickerVisible: Bool = false
    @State var selectedDate = Date()
    
    var body: some View {
        VStack {
            Button(action: {
                isDatePickerVisible.toggle()
                
            }, label: {
                Text("Show")
            })
            
            
            if isDatePickerVisible {
                DatePicker("Enter your birthday",
                           selection: $selectedDate,
                           displayedComponents: .date)
                               .datePickerStyle(GraphicalDatePickerStyle())
            }
        }
     
    }
}

结果

这是切换DatePicker 时的样子。您会看到没有显示日期的名称。


如果不隐藏,默认是这样的。

【问题讨论】:

    标签: swiftui ios15


    【解决方案1】:

    您似乎发现了一个真正的错误。我可以确认这种行为,以及与DisclosureGroup() 相同的行为。我确实注意到,只要您选择另一个日期,就会出现一周中的几天。他们只是从一开始就没有出现。当您提交雷达时,请在此处发布参考,以便每个人都可以参考。

    【讨论】:

      【解决方案2】:

      绝对是一个错误。您可以通过以下方式部分绕过它:

      if isDatePickerVisible {
          DatePicker("Enter your birthday", selection: $selectedDate, displayedComponents: .date)
              .frame(width: 333)   // <--- here
              .datePickerStyle(.graphical)
      }
      

      虽然我在 macos 上使用 444 时,它又回到了 bug 上。请注意,您也可以将DatePicker 包装在Form {DatePicker(...)} 中以修复错误,它看起来相当不错。

      【讨论】:

      • 有了表单就可以了。但是,From 有insetGrouped 样式,而且好像不能改。
      猜你喜欢
      • 2020-01-23
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多