在 Swift 中,如何在不移动选取器的情况下更新选取器的显示行?

How can I update a picker's displayed rows without moving the picker, in Swift?

我已经设置了一个选择器来从 2 个不同的数组中进行绘制,具体取决于用户想要使用的单位。一切正常,但在翻转开关后,用户必须在更新显示以显示新单位之前将选择器移动到几个值之间。我会以错误的方式解决这个问题吗?我应该有 2 个带有布尔值的独立选择器来打开和关闭 alphas 吗?

我希望有一种简单的方法可以强制选择器向前或向后跳 5 行,这应该将整个显示更新为新单位,但我找不到执行此操作的方法。任何方向将不胜感激。

 func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {

    let flatKComp = 0

     var formattedFlatK : String!
     var formattedSteepK : String!

    if dioptorsOn == true 
    { // linked to a UISwitch

       formattedFlatK = String(format: "%.2f", flatKArrayD[row])
       formattedSteepK = String(format: "%.2f", steepKArrayD[row])

        if component == flatKComp 
        {

            return formattedFlatK

        } 

        else 
        {

            return formattedSteepK
        }

    } 

    else 
    {

        formattedFlatK = String(format: "%.2f", flatKArrayMM[row])
        formattedSteepK = String(format: "%.2f", steepKArrayMM[row])

        if component == flatKComp 
        {

            return formattedFlatK

        } 

        else 
        {

            return formattedSteepK
        }
    }
}

您是否尝试过 刷新 pickerView 使用:

pickerView.reloadAllComponents()