How do I add multiple components to a PickerView?

前端 未结 5 792
北海茫月
北海茫月 2021-01-07 00:07

It may be a simple question but how do I add multiple components to a UIPickerView? I use NSMutableArray to populate one component but I dont know how to populate the others

5条回答
  •  星月不相逢
    2021-01-07 00:53

    Here is the swift3 code.Here I am assigning values of multiple picker view to a UITextField.

    var pickOption = [["1", "2", "3","4","5","6","7","8","9"], ["0","1","2", "3","4","5","6"],["0","1","2", "3","4","5","6"]]
    @IBOutlet weak var travellersTextField: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let pickerView = UIPickerView()
        pickerView.delegate = self
        travellersTextField.inputView = pickerView
    }
    
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
            return pickOption.count
    }
    
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
            return pickOption[component].count
    }
    
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
            return  pickOption[component][row]
    }
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        let adult = pickOption[0][pickerView.selectedRow(inComponent: 0)]
        let child = pickOption[1][pickerView.selectedRow(inComponent: 1)]
        let infant = pickOption[2][pickerView.selectedRow(inComponent: 2)]
    
        travellersTextField.text = adult + " adults," + child + " children," + infant + " infants"
        travellersTextField.becomeFirstResponder()
    
    }
    

提交回复
热议问题