Vad*_* F. 5 datepicker ios swift swiftui
我在底部工作表视图中有一个日期选择器。
当底部工作表打开时,我第一次选择一天时,日期选择器高度会发生变化。PS:如果我使用 .frame 为选择器设置自定义高度,则日期选择器就会在框架内变得平滑。
var body: some View {
VStack {
HStack {
Text("date_picker_title".ld())
.font(.custom(Font.rRegular, size: 12))
.padding()
Spacer()
}
HStack {
Text(date.prettyDate)
.font(.custom(Font.rMedium, size: 28))
Spacer()
Text(date.prettyHour)
.font(.custom(Font.rMedium, size: 28))
}.padding(.horizontal)
Seperator(cellHeight: 0).frame(height: 2)
Spacer().frame(height: 6)
DatePicker("", selection: $date, in: Date()..., displayedComponents: .date)
.datePickerStyle(.graphical)
.labelsHidden()
.tint(Color.appPurple)
.padding(.horizontal)
.padding(.bottom, -10)
Seperator(cellHeight: 0).frame(height: 2)
HStack {
Text("date_picker_enter_time".ld())
.font(.custom(Font.rRegular, size: 12))
DatePicker("", selection: $date, displayedComponents: .hourAndMinute)
.labelsHidden()
.tint(Color.appPurple)
Spacer()
}.padding()
HStack {
Button {
completion(nil)
} label: {
Text("date_picker_cancel".ld())
.font(.custom(Font.rRegular, size: 14))
.foregroundColor(Color.appPurple)
}
Spacer()
Button {
completion(date)
} label: {
Text("date_picker_ok".ld())
.font(.custom(Font.rRegular, size: 14))
.foregroundColor(Color.appPurple)
}
}.padding(.horizontal)
Spacer().frame(height: 50)
}
.frame(maxWidth: .infinity)
.background(Color.appLightPurple)
.padding(.bottom, -50)
}
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题并收到此控制台警告:“UICalendarView 的高度小于它可以呈现其内容的高度;默认为最小高度”
我找到了这个答案来设置框架宽度。这不是最佳的,但似乎可以解决我的问题。
DatePicker(selection: $date, displayedComponents: .date)
.datePickerStyle(.graphical)
.frame(width: 320) // Bugfix for AutoLayout-Issue
Run Code Online (Sandbox Code Playgroud)