【发布时间】:2023-04-07 12:00:02
【问题描述】:
工具栏高于日期选择器,这是一个错误吗?还是我做错了什么?
我的代码:
class ViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
let datePicker = UIDatePicker()
override func viewDidLoad() {
super.viewDidLoad()
showDatePicker()
}
func showDatePicker(){
//Formate Date
datePicker.datePickerMode = .date
datePicker.preferredDatePickerStyle = .compact
//ToolBar
let toolbar = UIToolbar();
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(donedatePicker));
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelDatePicker));
toolbar.setItems([doneButton,spaceButton,cancelButton], animated: false)
textField.inputAccessoryView = toolbar
textField.inputView = datePicker
}
@objc func donedatePicker(){
let formatter = DateFormatter()
formatter.dateFormat = "dd/MM/yyyy"
textField.text = formatter.string(from: datePicker.date)
self.view.endEditing(true)
}
@objc func cancelDatePicker(){
self.view.endEditing(true)
}
}
是的,我知道我可以回到preferredDatePickerStyle = .wheels,但有趣的是它为什么会这样
【问题讨论】:
-
你发现了吗?
-
不,还是什么都没有,只是回滚到 .wheels
-
datePicker = UIDatePicker() datePicker.datePickerMode = .date if #available(iOS 14, *) { datePicker.preferredDatePickerStyle = .wheels datePicker.sizeToFit() } datePicker.addTarget(self, action: #选择器(self.handleDatePicker),用于:.valueChanged) inputView = datePicker
标签: swift datepicker storyboard toolbar ios14