如何在不滚动选择器视图的情况下选择当前时间
Posted
技术标签:
【中文标题】如何在不滚动选择器视图的情况下选择当前时间【英文标题】:how to Select current time without scrolling picker view 【发布时间】: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)
吗?
【参考方案1】:
我已经附加了给你当前时间的功能。
func getTimeFrom(date: Date)
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = DateFormatter.Style.short
dateFormatter.timeZone = TimeZone.current
let time = dateFormatter.string(from: date)
lbl_Time.text = time
-> 在 ViewDidLoad() 中调用上述函数并从选取器中传递当前日期,如下面的代码。
override func viewDidLoad()
super.viewDidLoad()
getTimeFrom(date: datePicker.date)
-> 用于从日期选择器中选择的日期和时间。
@IBAction func actionPicker(_ sender: UIDatePicker)
getTimeFrom(date: sender.date)
【讨论】:
以上是关于如何在不滚动选择器视图的情况下选择当前时间的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在不使用图像选择器的情况下从照片应用程序呈现默认的 iOS 编辑视图?
在不限制滚动的情况下放大当前用户在 MapView 上的位置?