iOS 14上UIDatePicker使用旧样式

iOS一旦更新,随之而来的就是App的适配工作。其实大部分App根本不会去用iOS更新后的新特性,所以很多时候的适配都是浪费时间。
所以我一再强调跨平台的重要性,注意此跨平台是指不赖原生,因此不会随着iOS更新UI发现变化。
比如自绘渲染引擎的Flutter。

问题

UIDatePicker在iOS 14上只显示了当天一个日期(如下图所示),且无法滚动选择其他日期。

image-20210602194852330

解决

在iOS13.4之后 UIDatePicker 增加了属性preferredDatePickerStyle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@available(iOS 13.4, *)
public enum UIDatePickerStyle : Int {
/// 这个属性会自动为当前平台和模式选择最佳样式。
case automatic = 0

/// 这个属性就是我们常用的那种滚轮的了
case wheels = 1

/// 为日期选择器使用紧凑的样式。 编辑在覆盖中进行。
case compact = 2

/// Use a style for the date picker that allows editing in place.
@available(iOS 14.0, *)
case inline = 3
}

使用如下代码将该属性为 wheels 即可:

1
2
3
if (@available(iOS 13.4, *)) {
_datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels;
}

iOS 14上UIDatePicker使用旧样式

https://ganzhixiong.com/p/f569bd/

Author

干志雄

Posted on

2021-06-02

Updated on

2021-06-02

Licensed under

Comments