在 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()
我已经设置了一个选择器来从 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()