为了补充一下Oscar的回答...
UIDatePicker
现在有三种不同的样式,根据文档here和here。日期选择器的样式可以通过.preferredDatePickerStyle
属性进行访问,该属性可设置四个不同的案例:
.automatic
- 一种样式,表示系统基于当前平台和日期选择器模式选择具体样式。.compact
- 一种样式,表示日期选择器显示为一个标签,当点击时显示一个日历样式的编辑器。.inline
- 一种样式,表示日期选择器显示为内联可编辑字段。.wheels
- 一种样式,表示日期选择器显示为轮选择器。如果你希望界面看起来与iOS 14之前版本相同,请使用.wheels
样式。值得注意的是,并非所有样式都能适应所有日期和时间设置,因此只能设置首选样式。
最后,这个属性仅在iOS 13.4或更新版本中提供,所以你必须使用类似以下代码进行版本控制:
if #available(iOS 13.4, *) {
yourDatePicker.preferredDatePickerStyle = UIDatePickerStyle.automatic
} else {
// Fallback on earlier versions
}
if #available(iOS 13.4, *) {
datePicker.preferredDatePickerStyle = .wheels
}
如果有人在寻找Objective-C:
if (@available(iOS 13.4, *)) {
datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels;
}
事实证明,苹果公司新增了一种非常不同的UIDatePicker样式,并莫名其妙地将其设置为旧项目的默认值。
现在,您必须进入所有日期/时间选择器的设置中并将样式从“Automatic”更改为“Wheels”。未知“Automatic”基于什么以及为什么它不能默认为唯一先前存在的样式。
in iOS appDelegate.m
didFinishLaunchingWithOptions . () inside
if (@available(iOS 14, *)) {
UIDatePicker *picker = [UIDatePicker appearance];
picker.preferredDatePickerStyle = UIDatePickerStyleWheels;
}
<DateTimePickerModal
datePickerContainerStyleIOS={{paddingHorizontal: 40}}
// display={Platform.OS === "ios" ? "spinner" : "default"}
isVisible={isDatePickerVisible}
mode={mode}
maximumDate={new Date()}
onConfirm={handleConfirm}
onCancel={hideDatePicker}
/>