【发布时间】:2016-02-20 13:00:24
【问题描述】:
我在 UIPickerView 中遇到问题。当我选择 textField1 时,UIPickerView 是正确的,但是当我单击 textField2 时,pickerData1 中的值显示在 UIPickerView 中,而不是 pickerData2 的值。如果错误,请帮助我找到错误或纠正我的错误代码。谢谢
注意:didSelectRow 和 titleForRow 函数中的 bool 只是一个示例。谢谢
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet var textField1: UITextField!
let pickerData1 = ["11", "12", "13"]
let pickerData2 = ["14", "15", "16"]
override func viewDidLoad() {
super.viewDidLoad()
let picker: UIPickerView
picker = UIPickerView(frame: CGRectMake(0, 200, view.frame.width, 300))
picker.backgroundColor = .whiteColor()
picker.showsSelectionIndicator = true
picker.delegate = self
picker.dataSource = self
let toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.Default
toolBar.translucent = true
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
toolBar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePicker")
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "donePicker")
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.userInteractionEnabled = true
textField1.inputView = picker
textField1.inputAccessoryView = toolBar
textField2.inputView = picker
textField2.inputAccessoryView = toolBar
}
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? {
if textfield1selected // just a sample bool
{
return pickerData1[row]
}
else // sample bool also
{
return pickerData2[row]
}
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if textfield1selected // just a sample bool
{
textField1.text = pickerData1[row]
}
else // sample bool also
{
textField2.text = pickerData2[row]
}
}
func donePicker() {
textField1.resignFirstResponder()
textField2.resignFirstResponder()
}
}
【问题讨论】:
-
如果我的回答对你有帮助,请接受....谢谢程序员是天才:)
-
谢谢它真的有帮助嘿嘿“)