当使用.labelsHidden()时,在视图中居中选择器。

9
我正在展示一个使用type为WheelDatePickerStyle()的SwiftUI DatePicker。它位于一个Form内的Section中。因为我展示了Section标题,所以不想显示Picker的标签。然而,当选择.labelsHidden()时,Picker会向左移动并留下一些空间。
如何使Picker居中或确保其占据整个Section/Form的宽度?
DatePicker("Please enter a time", selection: $time, displayedComponents: .hourAndMinute)
    .labelsHidden()
    .datePickerStyle(WheelDatePickerStyle())

2
请问您能否包含您的代码? - LuLuGaGa
这段代码片段按照你的期望工作,所以问题出在别处。 - turingtested
2个回答

12
DatePicker("Please enter a time", selection: $time, displayedComponents: .hourAndMinute)
    .labelsHidden()
    .datePickerStyle(WheelDatePickerStyle())
    .frame(minWidth: 0, maxWidth: .infinity, alignment: .center)

1
.frame(minWidth: 0, maxWidth: .infinity, alignment: .center) 对我很有帮助。 - Jonas Deichelmann

1

您不需要标签。就像以下内容:

   DatePicker("", selection: $time, displayedComponents: .hourAndMinute)
    // .labelsHidden()
    .datePickerStyle(WheelDatePickerStyle())

另一种简单的方法是使用HStack,并在两侧都使用Spacer()
HStack{
    Spacer()
    DatePicker.init(selection: $time, displayedComponents: .hourAndMinute, label: {
        EmptyView()
        })
        .labelsHidden().datePickerStyle(WheelDatePickerStyle())
    Spacer()
    }

1
我喜欢第二个建议!标签也用于屏幕阅读器,因此空字符串不是理想选项。 - Gerjan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接