在选择器视图中显示现在和即将到来的日子

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 文档是一件很棒的事情。你应该试试看。