渲染时 UIDatePicker 颠簸 day/time

UIDatePicker bumps day/time when rendered

我正在向我的应用程序添加一个 UIDatePicker,并且我正在使用 UITextField.inputView 来呈现它,而不是使用常规键盘(因此我们不会为选择器使用额外的 space查看)。

我使用 .wheels 作为 datePicker 的样式。

class ViewController: UIViewController {
    @IBOutlet weak var field: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        field.delegate = self
    }
}
extension ViewController : UITextFieldDelegate {
    func textFieldDidBeginEditing(_ textField: UITextField) {
        if textField == field {
            let datePicker = UIDatePicker()
            datePicker.datePickerMode = .dateTime // or .time, or .date
            datePicker.preferredDatePickerStyle = .wheels
            field.inputView = datePicker
        }
    }
}

在 IPhone SE(第 2 次)的模拟器上测试此代码时,selecting 日期存在问题:当我尝试 select 任何日期时,它会影响第一个组成部分由 3 个元素组成:

此外,ViewController 中的任何点击都会触发此日期碰撞行为。

我创建了一个简单的重现项目:https://github.com/egorshulga/datepicker-debugging。我在那里添加了另一个 UIDatePicker,将其放在文本字段下方,以表明对于常规选择器而言,问题 不可重现 .

这是问题演示的屏幕截图: demo 1 demo 2

我的环境:

我试过(但没用):

此外,我在其他模拟器(IPhone 12 Pro Max,IPhone 8)和真实的 IPhone 11 Pro Max 上检查了这个问题 - 问题 不可重现。不幸的是,我没有 IPhone SE 2nd gen 作为检查此行为的真实设备。

IPhone SE 2nd gen 模拟器有什么问题?

嗯,据我所知,这个问题在 IPhone SE 2nd Gen 模拟器 iOs 14.5 上不再重现(最新的 Xcode 版本 12.5 12E262 于 4 月 26 日到达2021 年)。谢谢,苹果!