UIPickerView在错误的组件中选择行(需要驱魔吗?)

时间:2018-08-26 20:54:27

标签: ios swift uipickerview

我不知道该怎么做来激怒众神,但是我的UIPickerView表现异常。它有2个组成部分,分别是月份和年份值,并且在右侧部分(年份)中选择一个值也会导致左侧部分(月)也更改值。

我最初使用以下代码创建UIPickerView:

pickerView = UIPickerView(frame: ...)
pickerView.delegate = self
pickerView.dataSource = self

然后,我实现一些简单的委托/数据源方法来处理选择器视图,如下所示:

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    if component == 0 {
        expirationMonth = months[row]
    } else {
        expirationYear = years[row]
    }
    expirationTextField?.text = "\(expirationMonth ?? "")/\(expirationYear?.substring(from: 2) ?? "")"
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    if component == 0 {
        return months[row]
    } else {
        return years[row]
    }
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    if component == 0 {
        return months.count
    } else {
        return years.count
    }
}

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

此外,即使我未设置选择器视图的数据源,也正在调用UIPickerView数据源方法numberOfComponents

我不知道是什么导致了这种现象。我已经尝试了几乎所有内容,并且没有阻止它更改两个列的值的功能。有谁有解决此问题的想法?

1 个答案:

答案 0 :(得分:0)

事实证明这是iOS模拟器中的错误,因为在iPhone上运行时,它就像是一种魅力。我以为我在那里快要疯了!

我要在早上提交错误投诉...对于其他遇到此问题的人,祝您好运。