-
变成这个样子了

2.如果使用以前的样式
datepicker.preferredDatePickerStyle = .wheels
- 不知道是不是苹果的bug 宽高都不对
let datepicker = UIDatePicker(frame: CGRect(x: 0, y: 100, width: self.view.frame.width, height: 300))
datepicker.preferredDatePickerStyle = .wheels
datepicker.backgroundColor = UIColor.yellow
datepicker.datePickerMode = .dateAndTime
self.view.addSubview(datepicker)

4.解决办法,设置frame放到datePickerMode后面设置变成正常了
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
datePicker = UIDatePicker()
datePicker.centerY = self.height / 2
datePicker.locale = Locale(identifier: "zh_GB")
if #available(iOS 13.4, *) {
datePicker.preferredDatePickerStyle = .wheels
} else {
// Fallback on earlier versions
}
datePicker.datePickerMode = UIDatePicker.Mode.time
datePicker.addTarget(self, action: #selector(datePickerValueChange(_:)), for: UIControl.Event.valueChanged)
datePicker.frame = frame
addSubview(datePicker)
}
在iOS系统升级后,遇到滚轮选择时间的UIDatePicker控件出现异常,表现为样式错误且宽高不正确,疑似苹果的bug。通过在设置frame之后再设置datePickerMode,可以解决此问题,使UIDatePicker恢复正常功能。
1万+

被折叠的 条评论
为什么被折叠?



