首页 > 解决方案 > 新的 UIDatePicker 作为 inputView

问题描述

在 iOS 13 及更早的版本中,我们可以使用 UIDatePicker 作为 inputView 但现在呢?

我尝试使用 ios14 并在点击文本字段时没有附加任何内容。

var timePicker = UIDatePicker()
self.timePicker.preferredDatePickerStyle = UIDatePickerStyle.wheels
self.timePicker.datePickerMode = UIDatePicker.Mode.time
self.timePicker.minuteInterval = 5
self.startTimeTxtField.inputView = self.timePicker

正常吗?

标签: swiftuikituidatepicker

解决方案


显然,这是目前已知的问题。解决方法是sizeToFit在将日期选择器分配为输入视图之前调用它。

迅速

let datePicker = UIDatePicker()
datePicker.datePickerMode = .time
datePicker.locale = .current
if #available(iOS 14, *) {
    datePicker.preferredDatePickerStyle = .wheels
    datePicker.sizeToFit()
}
textField.inputView = datePicker

Objective-C

if (@available(iOS 14.0, *)) {
    [datePicker setPreferredDatePickerStyle:UIDatePickerStyleWheels];
    [datePicker setDatePickerMode:UIDatePickerModeDate]; //optional
    [datePicker sizeToFit];
}

请参阅此处以获取来自苹果论坛的答案。


推荐阅读