【发布时间】:2021-12-26 11:45:55
【问题描述】:
如果不滚动选择器视图,我无法选择当前时间。
我正在这样做-:
@objc func dateChanged(_ sender: UIDatePicker?) {
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = .short
dateFormatter.dateFormat = "HH:mm"
if let date = sender?.date {
reminderLbl.text = dateFormatter.string(from: date)
}
}
这是用于打开选择器视图 -:
func openDatePickerView(){
datePicker = UIDatePicker.init()
datePicker.autoresizingMask = .flexibleWidth
datePicker.datePickerMode = .time
if #available(iOS 13.4, *) {
datePicker.preferredDatePickerStyle = .wheels
datePicker.backgroundColor = UIColor.white
} else {
// Fallback on earlier versions
}
datePicker.addTarget(self, action: #selector(self.dateChanged(_:)), for: .valueChanged)
datePicker.frame = CGRect(x: 0.0, y: UIScreen.main.bounds.size.height - 300, width: UIScreen.main.bounds.size.width, height: 300)
self.view.addSubview(datePicker)
toolBar = UIToolbar(frame: CGRect(x: 0, y: UIScreen.main.bounds.size.height - 300, width: UIScreen.main.bounds.size.width, height: 50))
toolBar.barStyle = .default
toolBar.items = [UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil), UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(self.onDoneButtonClick))]
toolBar.sizeToFit()
self.view.addSubview(toolBar)
}
【问题讨论】:
-
你可能会为
valueChanged事件调用这个函数,它不会在第一次被调用。调用 viewDidLoad 中的方法。 -
每次选择当前时间都会发生
-
如何选择当前时间??包含相关代码,然后解释问题。
-
在
openDatePickerView结束时再次调用dateChanged(datePicker)方法,这将使用当前日期初始填充文本字段。 -
我不明白问题出在哪里。你不就是想念
datePicker.setDate(Date(), animated: false)吗?
标签: swift datepicker