我正在尝试让DatePicker显示在我的应用中。
当弹出DatePicker时,我想弹出一个日历而不是"老虎机"视图。为了完成它,我希望用户能够选择一个日期范围。因此,它正是您在旅行应用中找到的内容,例如Travelocity或Expedia。
这是我创建的代码,我已经成功地以编程方式实现了UIPickerViews
,它完美地运行。只是因为这个DatePicker我被卡住了!我是从UITextField
拉出来的吗?一个按钮? SOS!
只是寻找一些关于在哪里寻找或做什么的建议,或者如果您可能知道代码,我很乐意接受教育!
我感谢每个人的帮助。
-
import UIKit
class WanderlustViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
let climateOption = ["Hot", "Warm", "Cold", "Anywhere"]
let environmentOption = ["Beach","City","Mountain","Rural","Anywhere"]
let regionOption = ["Central America","Carribean","Europe","North America","South America", "Anywhere"]
let budgetOption = ["$0-$500","$501-$1000","$1001-$1500","$1501-$2500","$2501 and up"]
@IBOutlet weak var climateTextField: UITextField!
@IBOutlet weak var environmentTextField: UITextField!
@IBOutlet weak var regionTextField: UITextField!
@IBOutlet weak var budgetTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let climatepickerView = UIPickerView()
climatepickerView.tag = 1
climatepickerView.delegate = self
climatepickerView.dataSource = self
let environmentpickerView = UIPickerView()
environmentpickerView.tag = 2
environmentpickerView.delegate = self
environmentpickerView.dataSource = self
let regionpickerView = UIPickerView()
regionpickerView.tag = 3
regionpickerView.delegate = self
regionpickerView.dataSource = self
let budgetpickerView = UIPickerView()
budgetpickerView.tag = 4
budgetpickerView.delegate = self
budgetpickerView.dataSource = self
climateTextField.inputView = climatepickerView
environmentTextField.inputView = environmentpickerView
regionTextField.inputView = regionpickerView
budgetTextField.inputView = budgetpickerView
let toolBar = UIToolbar(frame: CGRectMake(0, self.view.frame.size.height/6, self.view.frame.size.width, 40.0))
toolBar.layer.position = CGPoint(x: self.view.frame.size.width/2, y: self.view.frame.size.height-20.0)
UIToolbar.appearance().barTintColor = UIColor.grayColor() /* Change background color using Xcode default vales */
UIToolbar.appearance().barTintColor = UIColor(red: 38/255, green: 50/255, blue: 56/255, alpha: 0.05)
UIBarButtonItem.appearance().tintColor = UIColor.grayColor() /* Change tint color using Xcode default vales */
UIBarButtonItem.appearance().tintColor = UIColor(red: 24/255, green: 255/255, blue: 255/255, alpha: 1.0)
let doneButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: #selector(WanderlustViewController.donePressed(_:)))
let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil)
let label = UILabel(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width / 3, height: self.view.frame.size.height))
let textBtn = UIBarButtonItem(customView: label)
toolBar.setItems([flexSpace,textBtn,flexSpace,doneButton], animated: true)
climateTextField.inputAccessoryView = toolBar
environmentTextField.inputAccessoryView = toolBar
regionTextField.inputAccessoryView = toolBar
budgetTextField.inputAccessoryView = toolBar
}
func donePressed(sender: UIBarButtonItem) {
climateTextField.resignFirstResponder()
environmentTextField.resignFirstResponder()
regionTextField.resignFirstResponder()
budgetTextField.resignFirstResponder()
}
func tappedToolBarBtn(sender: UIBarButtonItem) {
climateTextField.resignFirstResponder()
environmentTextField.resignFirstResponder()
regionTextField.resignFirstResponder()
budgetTextField.resignFirstResponder()
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView.tag == 1 {
return climateOption.count
}
if pickerView.tag == 2 {
return environmentOption.count
}
if pickerView.tag == 3 {
return regionOption.count
}
if pickerView.tag == 4 {
return budgetOption.count
}
return 1
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.tag == 1 {
return climateOption[row]
}
if pickerView.tag == 2 {
return environmentOption[row]
}
if pickerView.tag == 3 {
return regionOption[row]
}
if pickerView.tag == 4 {
return budgetOption[row]
}
return ""
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView.tag == 1 {
climateTextField.text = climateOption[row]
}
if pickerView.tag == 2 {
environmentTextField.text = environmentOption[row]
}
if pickerView.tag == 3 {
regionTextField.text = regionOption[row]
}
if pickerView.tag == 4 {
budgetTextField.text = budgetOption[row]
}
}