iOS14 以后UIDatePicker 新增了样式,并且默认为新样式,长这样:
造成这种情况的原因在于 iOS 13.4 新增了2个属性 preferredDatePickerStyle 和 datePickerStyle
而 preferredDatePickerStyle 在 iOS14 以上被默认为UIDatePickerStyleAutomatic,就会显示新增的 UIDatePickerStyleInline 效果,如果我们需要按之前的经典样式显示,则需要判断系统版本适配
1. 代码布局适配
在原代码基础上需要加入以下代码,调整样式:
if (@available(iOS 13.4, *)) {
self.datePickerMy.preferredDatePickerStyle = UIDatePickerStyleWheels;
}
*提示:设置 style 之后,还需要重新设置 picker 的 frame,否则布局宽高会有异常
2. XIB 布局
xib 适配相对简单,只需要将 Style 设置为 Wheels 即可显示为经典样式,如下图: