我已经设置了一个从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
}
}
}
答案 0 :(得分:2)
您是否尝试刷新 pickerView
使用:
pickerView.reloadAllComponents()