首页 > 解决方案 > 我的选择器行在我的选择器中只显示一行。我希望他们像日期选择器一样

问题描述

出于某种原因,我似乎无法在我的选择器中显示两条选择器行。他们似乎只显示一个,但日期选择器很好。

这是我的选择器目前的样子。

class HomeViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
    @IBOutlet weak var linePicker: UIPickerView!
    @IBOutlet weak var skuPicker: UIPickerView!

    override func viewDidLoad() {
        super.viewDidLoad()

        linePicker.delegate = self
        linePicker.dataSource = self

        skuPicker.delegate = self
        skuPicker.dataSource = self

        //passed over from previous view
        var plantInfo = plantInformation

        let totalNumberOfLines = plantInfo!["lines"].count

        //populated the data        
    }

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        if (pickerView.isEqual(linePicker)){
            return lineInfo.count
        } else {
            return skusForPickerLine.count
        }
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        if pickerView.isEqual(linePicker) {
            return lineInfo[row].lineNumber
        } else {
            return skusForPickerLine[row].sku_value
        }
    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        let selectedValue = linePicker.selectedRow(inComponent: 0)
        skusForPickerLine = lineInfo[selectedValue].skuInfo
        skuPicker.reloadComponent(0)
    }

    func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
        // height of picker is 50
        return CGFloat(50)
    }
}

标签: iosswiftuipickerview

解决方案


推荐阅读