首页 > 解决方案 > 通过点击整行为选取器选择一个值

问题描述

我正在构建一个具有Picker视图的 SwiftUI 应用程序。它嵌入在 aNavigationView中,因此当我点击 的标题时Picker,我会被转发到全屏选择视图以选择一个值。我只能通过点击它Text本身来选择一个,但如果我点击红色区域之外什么都不会发生。 屏幕上的交互区域

我想知道这是预期的行为还是某种错误?可以修复它,因此点击该行的任何部分都会算作选择吗?代码如下:

var body: some View {
    NavigationView {
        Form {
            Section {
                TextField("Amount", text: $checkAmount)
                    .keyboardType(.decimalPad)
                // !!!
                // The picker is here
                // !!!
                Picker("Number of people", selection: $peopleIndex) {
                    ForEach(peopleRange) {
                        Text("\($0) people")
                    }
                }
            }

            Section(header: Text("How much tip do you want to leave?")) {
                Picker("Tip percentage", selection: $percentageIndex) {
                    ForEach(0 ..< tipPercentages.count) {
                        Text("\(self.tipPercentages[$0])%")
                    }
                }.pickerStyle(SegmentedPickerStyle())
            }

            Section {
                Text("$\(totalPerPerson, specifier: "%.2f")")
            }
        }.navigationBarTitle("WeSplit")
    }
}

标签: iosswiftswiftui

解决方案


试试 .contentShape(Rectangle())

ForEach(peopleRange) {
    HStack {
        Text("\($0) people")
        Spacer()
    }
    .contentShape(Rectangle())
}

推荐阅读