iOS 14 菜单选择器样式的标签在更改时有时会变暗

Posted

技术标签:

【中文标题】iOS 14 菜单选择器样式的标签在更改时有时会变暗【英文标题】:iOS 14 menu picker style's label becomes dim sometimes when changing 【发布时间】:2020-10-31 12:43:02 【问题描述】:

我的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()
        
    

【问题讨论】:

【参考方案1】:

看起来这是一个错误:

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())

【讨论】:

伟大的发现!我正在为那个初始化程序提交一个雷达。 不幸的是,其他初始化程序或解决方法都不适用于我,但至少我们可以确认这是一个错误。 @Imthath 你能把雷达链接发给我吗? @benpva16 我不知道如何分享雷达链接。这是我提交的问题的反馈助手 ID - FB8888712。

以上是关于iOS 14 菜单选择器样式的标签在更改时有时会变暗的主要内容,如果未能解决你的问题,请参考以下文章

如何覆盖日期选择器的 iOS 暗模式样式

如何更改android中的数字选择器样式?

CSS-1选择器

标签选择器(CSS标签选择器)

CSS样式优先级

如何在 CSS 中更改默认的蓝色选择选项颜色