首页 > 解决方案 > Swift - 以编程方式创建 UIPickerView

问题描述

我创建了PickerView,但这不会打开PickerView我创建的。我在哪里犯错?为什么PickerView打不开。我在文本字段中添加了选择器视图,但它不起作用。我将它添加到viewDidLoad,但是当我单击文本字段时,选择器视图不会打开。

class EnergyChart: UIViewController , UIPickerViewDelegate, UIPickerViewDataSource {
 var picker = UIPickerView()
    var gradePickerValues1 : [String] = ["...", ...]

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1  
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return gradePickerValues1.count
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return gradePickerValues1[row]
    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
        getDevice.text = gradePickerValues1[row]   
        switch row {
        case 0: break
default: break    
        }
        self.view.endEditing(true)       
    } 
@objc func cancelTapped() {
        self.view.endEditing(true) 
    }
 let getDevice: UITextField = {
        let textFieldframe = CGRect()
        let textField2 = SkyFloatingLabelTextFieldWithIcon(frame: textFieldframe, iconType: .image)
      ...
        return textField2
    }()

 @objc func GetDevice() {
     self.getDevice.text = self.gradePickerValues1[0]
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        picker.backgroundColor = .white
        picker.showsSelectionIndicator = true

        picker.delegate = self
        picker.dataSource = self
        getDevice.inputView = picker
        GetDevice()
        let toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.default
        toolBar.isTranslucent = true
        toolBar.tintColor = UIColor(..)
        toolBar.sizeToFit()
 let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
        let cancelButton = UIBarButtonItem(title: "İptal", style: UIBarButtonItem.Style.plain, target: self,  action: #selector(cancelTapped))

        toolBar.setItems([cancelButton, spaceButton], animated: false)
        toolBar.isUserInteractionEnabled = true

        getDevice.inputAccessoryView = toolBar

        view.addSubview(getDevice)
        getDevice.snp.makeConstraints { (make) in
            make.centerX.equalTo(view).offset(50)
            make.top.equalTo(view).offset(510)
            make.height.equalTo(50)
            make.width.equalTo(200)
        }

标签: iosswiftuipickerview

解决方案


推荐阅读