PickerView: как центрировать по горизонтали и нет места? - PullRequest
0 голосов
/ 15 января 2020

у меня есть этот код.

к сожалению, окно выбора не центрировано по горизонтали, и между кнопками и окном выбора (по вертикали) слишком много места, теперь я могу использовать смещение, но есть ли лучший способ ?

   var body: some View {
        NavigationView {
            Form {
                Section(header: Text("Hi"), content: {
                    Button("Alphabet") {
                    }.frame(alignment: .center)
                    Button("Ok") {
                    }.frame(alignment: .center)
                    HStack {
                        Picker(selection: $sortedBy,
                               label: Text(""),
                               content: {
                                ForEach(p, id: \.self) { category in
                                    Text(category)
                                }
                            }).pickerStyle(WheelPickerStyle())
                    }
                })
            }
        }
    }

enter image description here

@ Райнер Фишер ... вот результат вашего предложения (к сожалению, не по центру)

enter image description here

1 Ответ

0 голосов
/ 16 января 2020

Проблема в том, что ваша пустая метка

 label: Text(""),

, даже если метка пуста, она занимает некоторое место с левой стороны сборщика. Вы можете проверить, просто добавив некоторый текст к метке.

Чтобы избавиться от метки, настройте свой код следующим образом:

.pickerStyle(WheelPickerStyle())
.labelsHidden()

Это будет центрировать ваш выбор выбора

Обновление 21.02.2020

Привет, Крис, прилагаю код, который я проверял, и который центрирует сборщик:

struct PickerView: View {

let p:[Vital] = [
    .init(name: "0"),
    .init(name: "1"),
    .init(name: "2"),
    .init(name: "3")
]

@State private var sortedby = 0

var body: some View {

        Picker(selection: $sortedby, label: Text("")) {
            ForEach(p) { post in
               Text(post.name)
            }
        }.pickerStyle(DefaultPickerStyle())
         .labelsHidden()
    }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...