iOS 14 菜单选择器样式的标签在更改时有时会变暗
iOS 14 menu picker style's label becomes dim sometimes when changing
我的 SwiftUI View
中有一个 Picker
和新的 MenuPickerStyle
。
如您所见,选择器的标签与选项相同,从一个选项更改为另一个选项时会变暗。
看起来它是不可点击的,但是当点击它时它会完成所需的工作。
这是我的代码。这只是一个非常简单的选择器实现。
struct MenuPicker: View {
@State var selection: String = "one"
var array: [String] = ["one", "two", "three", "four", "five"]
var body: some View {
Picker(selection: $selection, label: Text(selection).frame(width: 100), content: {
ForEach(array, id: \.self, content: { word in
Text(word).tag(word)
})
})
.pickerStyle(MenuPickerStyle())
.padding()
.background(Color(.systemBackground).edgesIgnoringSafeArea(.all))
.cornerRadius(5)
}
}
struct ContentView: View {
var body: some View {
ZStack {
Color.gray
MenuPicker()
}
}
}
看起来这是一个错误:
public init(selection: Binding<SelectionValue>, label: Label, @ViewBuilder content: () -> Content)
您可以尝试将其替换为:
public init(_ titleKey: LocalizedStringKey, selection: Binding<SelectionValue>, @ViewBuilder content: () -> Content)
这里有一个解决方法(你只能使用String
作为标签):
Picker(selection, selection: $selection) {
ForEach(array, id: \.self) { word in
Text(word).tag(word)
}
}
.frame(width: 100)
.animation(nil)
.pickerStyle(MenuPickerStyle())
我的 SwiftUI View
中有一个 Picker
和新的 MenuPickerStyle
。
如您所见,选择器的标签与选项相同,从一个选项更改为另一个选项时会变暗。
看起来它是不可点击的,但是当点击它时它会完成所需的工作。
这是我的代码。这只是一个非常简单的选择器实现。
struct MenuPicker: View {
@State var selection: String = "one"
var array: [String] = ["one", "two", "three", "four", "five"]
var body: some View {
Picker(selection: $selection, label: Text(selection).frame(width: 100), content: {
ForEach(array, id: \.self, content: { word in
Text(word).tag(word)
})
})
.pickerStyle(MenuPickerStyle())
.padding()
.background(Color(.systemBackground).edgesIgnoringSafeArea(.all))
.cornerRadius(5)
}
}
struct ContentView: View {
var body: some View {
ZStack {
Color.gray
MenuPicker()
}
}
}
看起来这是一个错误:
public init(selection: Binding<SelectionValue>, label: Label, @ViewBuilder content: () -> Content)
您可以尝试将其替换为:
public init(_ titleKey: LocalizedStringKey, selection: Binding<SelectionValue>, @ViewBuilder content: () -> Content)
这里有一个解决方法(你只能使用String
作为标签):
Picker(selection, selection: $selection) {
ForEach(array, id: \.self) { word in
Text(word).tag(word)
}
}
.frame(width: 100)
.animation(nil)
.pickerStyle(MenuPickerStyle())