如何在Swift中更新选择器显示的行而不移动选择器?

时间:2015-04-07 14:34:08

标签: swift uipickerview

我已经设置了一个从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
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您是否尝试刷新 pickerView使用:

pickerView.reloadAllComponents()