我设置了一个选择器,根据用户想要使用的单元,从两个不同的数组中进行绘制。一切都很好,但在切换开关后,用户必须将选择器移动几个值,然后才能更新显示以显示新单位。我是不是搞错了?我应该有两个单独的拾取器和一个布尔值来打开和关闭字母吗?
我希望有一种简单的方法可以强制选择器向前或向后跳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()