自定义菜单中的 SwiftUI 轮 PickerStyle

Eth*_*Kay 7 datepicker ios swift swiftui

在 SwiftUI 中,内置DatePicker有两个按钮,每个按钮在单击时都会显示一个带有高度自定义视图的弹出菜单(分别是日历和多组件轮式选择器)。

在此输入图像描述

如何在菜单中使用自定义按钮和我自己的滚轮样式选择器重新创建类似的设置?例如,我试图创建一个与 DatePicker 风格相同的持续时间选择器。不幸的是,当使用stylePicker渲染时,放置在 a 内的 aMenu根本不会渲染。使用默认选择器样式等替代方案不允许获得与 DatePicker 中的设置相同的体验。使用上下文菜单也不太正确,因为它需要长按并在打开时模糊屏幕的其余部分(加上轮式选择器在此视图中也被破坏)。.wheel.menu

最小可重现示例:单击Test甚至不会打开菜单。请注意,向选择器添加.frame(width: 100, height: 100)fixedSize()没有帮助。

struct ExampleView: View {
  @State var selection = 1
  
  var body: some View {
    Menu("Test") {
      Picker("Test", selection: $selection) {
        ForEach(0..<10) {
          Text("\($0)").tag($0)
        }
      }
      .pickerStyle(.wheel)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)