如何更改 SwiftUI 中的选取器菜单文本大小?

Faw*_*fai 19 ios swift swiftui

我有一个Pickerof 样式Menu,我需要更改其文本大小(蓝色文本),我尝试了.font(.largeTitle)修改器,但它不起作用。

enum Privacy: String, Identifiable, CaseIterable {
    case open = "Open"
    case closed = "Closed"
    var id: String { self.rawValue }
}

struct ContentView: View {
    @State var selection = Privacy.open
    var body: some View {
        Picker("Privacy", selection: $selection) {
            ForEach(Privacy.allCases) { value in
                Text(value.rawValue)
                    .tag(value)
                    .font(.largeTitle)
            }
        }
        .font(.largeTitle)
        .pickerStyle(.menu)
    }
}
Run Code Online (Sandbox Code Playgroud)

Geo*_*e_E 31

删除样式并使用自定义标签.menu将其包裹起来:Menu

Menu {
    Picker(selection: $selection) {
        ForEach(Privacy.allCases) { value in
            Text(value.rawValue)
                .tag(value)
                .font(.largeTitle)
        }
    } label: {}
} label: {
    Text("Privacy")
        .font(.largeTitle)
}
Run Code Online (Sandbox Code Playgroud)

  • 当我尝试此操作时,ForEach 中的字体大小设置似乎效果为零。 (11认同)

Asp*_*eri 11

如果有人需要在这种情况下将所选值显示为标签(而不是静态文本),则可以使用以下变体

使用 Xcode 13.2 / iOS 15.2 进行测试

演示

Menu {
    Picker(selection: $selection) {
        ForEach(Privacy.allCases) { value in
            Text(value.rawValue)
                .tag(value)
        }
    } label: {}
} label: {
    Text(selection.rawValue)
        .font(.largeTitle)
}.id(selection)
Run Code Online (Sandbox Code Playgroud)