在选择器视图中显示现在和即将到来的日子
Show Present and Upcoming days on picker view
@IBOutlet weak var tvDueDate: UITextField!
@IBOutlet weak var dateText: UITextField!
var datePicker = UIDatePicker()
var dayPicker = UIDatePicker()
let dateFormatter = NSDateFormatter()
let timeFormatter = NSDateFormatter()
var date_time:String!
var timeAs_24Hour:String!
var selected_date:String!
var timeAs_12Hour:String!
override func viewDidLoad() {
super.viewDidLoad()
setupDatePicker()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func setupDatePicker() {
datePicker.datePickerMode = .Time
dayPicker.datePickerMode = .Date
let toolBar = UIToolbar()
toolBar.barStyle = .Default
toolBar.translucent = true
toolBar.tintColor = UIColor.blueColor()
toolBar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: #selector(ViewController.doneClick))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: #selector(ViewController.cancelClick))
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.userInteractionEnabled = true
tvDueDate.inputView = datePicker
tvDueDate.inputAccessoryView = toolBar
tvDueDate.tintColor = UIColor.clearColor()
dateText.inputView = dayPicker
dateText.inputAccessoryView = toolBar
dateText.tintColor = UIColor.clearColor()
}
func doneClick() {
dateFormatter.dateFormat = "yyyy-MM-dd"
timeFormatter.dateFormat = "hh:mm a"
dateFormatter.dateStyle = .MediumStyle
let selected_Final_Date = dateFormatter.stringFromDate(dayPicker.date)
let selected_Final_Time = timeFormatter.stringFromDate(datePicker.date)
self.dateText.text = selected_Final_Date.uppercaseString
self.tvDueDate.text = selected_Final_Time.uppercaseString
tvDueDate.resignFirstResponder()
dateText.resignFirstResponder()
}
func cancelClick() {
tvDueDate.resignFirstResponder()
dateText.resignFirstResponder()
}
我正在使用 Swift,并尝试在 2 次文本字段点击时创建 2 个选择器视图。在第一个文本字段中,它在年月日全天开放,在第二个文本字段中显示时间。我想在第一个文本字段单击时显示今天和所有即将到来的日子,在第二个文本字段上,它应该显示上午 9 点到下午 6 点之间的时间,只有 30 分钟的差异,例如 9,9:30,10:00, 10:30, 11:00, 11:30.
您应该使用 UIDatePicker(或两个,如果您决定 select 在一个字段中输入日期,在另一个字段中输入时间)
它们的设计正是这个目的。
他们有设置让您决定用户是否可以选择日期,或日期和时间,或只是时间。他们还有一些设置可以让您限制用户可以选择的日期或时间范围。 Xcode 文档是一件很棒的事情。你应该试试看。
@IBOutlet weak var tvDueDate: UITextField!
@IBOutlet weak var dateText: UITextField!
var datePicker = UIDatePicker()
var dayPicker = UIDatePicker()
let dateFormatter = NSDateFormatter()
let timeFormatter = NSDateFormatter()
var date_time:String!
var timeAs_24Hour:String!
var selected_date:String!
var timeAs_12Hour:String!
override func viewDidLoad() {
super.viewDidLoad()
setupDatePicker()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func setupDatePicker() {
datePicker.datePickerMode = .Time
dayPicker.datePickerMode = .Date
let toolBar = UIToolbar()
toolBar.barStyle = .Default
toolBar.translucent = true
toolBar.tintColor = UIColor.blueColor()
toolBar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: #selector(ViewController.doneClick))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: #selector(ViewController.cancelClick))
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.userInteractionEnabled = true
tvDueDate.inputView = datePicker
tvDueDate.inputAccessoryView = toolBar
tvDueDate.tintColor = UIColor.clearColor()
dateText.inputView = dayPicker
dateText.inputAccessoryView = toolBar
dateText.tintColor = UIColor.clearColor()
}
func doneClick() {
dateFormatter.dateFormat = "yyyy-MM-dd"
timeFormatter.dateFormat = "hh:mm a"
dateFormatter.dateStyle = .MediumStyle
let selected_Final_Date = dateFormatter.stringFromDate(dayPicker.date)
let selected_Final_Time = timeFormatter.stringFromDate(datePicker.date)
self.dateText.text = selected_Final_Date.uppercaseString
self.tvDueDate.text = selected_Final_Time.uppercaseString
tvDueDate.resignFirstResponder()
dateText.resignFirstResponder()
}
func cancelClick() {
tvDueDate.resignFirstResponder()
dateText.resignFirstResponder()
}
我正在使用 Swift,并尝试在 2 次文本字段点击时创建 2 个选择器视图。在第一个文本字段中,它在年月日全天开放,在第二个文本字段中显示时间。我想在第一个文本字段单击时显示今天和所有即将到来的日子,在第二个文本字段上,它应该显示上午 9 点到下午 6 点之间的时间,只有 30 分钟的差异,例如 9,9:30,10:00, 10:30, 11:00, 11:30.
您应该使用 UIDatePicker(或两个,如果您决定 select 在一个字段中输入日期,在另一个字段中输入时间)
它们的设计正是这个目的。
他们有设置让您决定用户是否可以选择日期,或日期和时间,或只是时间。他们还有一些设置可以让您限制用户可以选择的日期或时间范围。 Xcode 文档是一件很棒的事情。你应该试试看。