我想隐藏我的datepicker,直到我的textField被选中。我只是为我的pickerView做了这个。但是,我一直无法找到一个解决方案,使用Swift显示然后将datePicker隐藏在textField上。有没有办法在Swift上隐藏UIDatePicker?
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {
@IBOutlet weak var TeeTimes: UILabel!
@IBOutlet weak var textFieldDate: UITextField!
@IBOutlet weak var datePicker: UIDatePicker!
@IBOutlet weak var picker: UIPickerView! = UIPickerView()
@IBOutlet weak var textfieldCourse: UITextField!
var pickerData = ["Norman Course", "Riding Golf", "Dmob Course"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
picker.hidden = true;
self.textfieldCourse.delegate = self
self.picker.delegate = self
self.picker.dataSource = self
textfieldCourse.text = pickerData[0]
//Inputs the data into the array
datePicker.hidden = true;
datePicker.addTarget(self, action: Selector("datePickerChanged:"), forControlEvents: UIControlEvents.ValueChanged)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) ->Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) ->Int {
return pickerData.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
textfieldCourse.text = pickerData[row]
picker.hidden = true
}
func textFieldShouldBeginEditing(textfield: UITextField) ->Bool {
picker.hidden = false
return false
}
func datePickerChanged(dataPicker: UIDatePicker) {
datePicker.hidden = false
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle
let strDate = dateFormatter.stringFromDate(datePicker.date)
textFieldDate.text = strDate
}
}
嗨丹尼斯,如果我有更多的日期选择器下面的输入字段,有没有办法让它隐藏和/或折叠?现在在viewDidLoad()我设置了datePicker.hidden = true,但它只是留空。下面的字段没有调整到占用这个空间。谢谢 – rockhammer
嗨rockhammer,你的问题似乎与你设置你的UI约束的方式。您应该在Auto Layout中摆弄,直到获得所需的结果。这应该是一个有用的参考:http://stackoverflow.com/questions/19561269/autolayout-with-hidden-uiviews –
嗨丹尼斯,感谢指针。我拼命地试图避免显示/隐藏datePicker的UITableView方法。你的参考帮助我弄清楚如何去做。谢谢 – rockhammer