Multiple UIPickerView in the same UIView

后端 未结 5 1529
暖寄归人
暖寄归人 2021-02-01 20:24

I\'m a complete beginner on iOS dev and I want to create a little iOS application. On this application, 3 UIPickerViews are supposed to display different data.

5条回答
  •  梦毁少年i
    2021-02-01 21:00

    Try this:

        class UserConfig: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
    
        @IBOutlet weak var lblPeso: UILabel!
        @IBOutlet weak var lblAlto: UILabel!
        @IBOutlet weak var pickerView: UIPickerView!
        @IBOutlet weak var btPeso: UIButton!
        @IBOutlet weak var btAlto: UIButton!
    
        var pulsado = 1
    
        let userDefault = UserDefaults.standard
        let pesoArray = [50,51,52,53,54,55,56,57,58,59,
                         60,61,62,63,64,65,66,67,68,69,
                         70,71,72,73,74,75,76,77,78,79,
                         80,81,82,83,84,85,86,87,88,89,
                         90,91,92,93,94,95,96,97,98,99,
                         100,101,102,103,104,105,106,107,108,109,
                         110,111,112,113,114,115,116,117,118,119,
                         120,121,122,123,124,125,126,127,128,120,
                         130]
        let altoArray = [150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
                         160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
                         170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
                         180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
                         190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
                         200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
                         210, 211, 212]
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            pickerView.delegate = self
            pickerView.dataSource = self
        }
    
        override func touchesBegan(_ touches: Set, with event: UIEvent?) {
            self.view.endEditing(true)
        }
        @IBAction func volver(_ sender: Any) {
    
            self.dismiss(animated: true, completion: nil)
        }
    
        func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
            if pulsado == 1 {
                return altoArray.count
            } else {
                return pesoArray.count
            }
        }
    
        func numberOfComponents(in pickerView: UIPickerView) -> Int {
            return 1
        }
    
        func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    
            if pulsado == 1{
                return String(format: "%i", altoArray[row])
            }else{
                return String(format: "%i", pesoArray[row])
            }
        }
    
        func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            if pulsado == 1 {
                lblAlto.text = String(format: "%i", altoArray[row])
            } else {
                lblPeso.text = String(format: "%i", pesoArray[row])
            }
        }
        @IBAction func altoPressed(_ sender: Any) {
    
            pulsado = 1
            pickerView.reloadAllComponents()
    
        }
        @IBAction func pesoPressed(_ sender: Any) {
    
            pulsado = 2
            pickerView.reloadAllComponents()
    
        }
    }
    

提交回复
热议问题