UIPickerView 在没有数据源的情况下获取选定值
UIPickerView get selected value without datasource
在没有数据源的情况下从 PickerView 获取值的最佳方法是什么?所以我无法从数组中读取值。
当前值只是行号,我需要在用户完成选择后阅读。
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 3
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if component == 0 {
return 300
} else {
return 10
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if component == 0 {
return "\(row)."
} else {
return "\(row)"
}
}
您可以使用pickerView.selectedRow(inComponent:)
let firstValue = pickerView.selectedRow(inComponent: 0)
let secondValue = pickerView.selectedRow(inComponent: 1)
两者都只是一个 Int
值,表示其各自组件中当前选定的行索引。因为你的值是从0开始的,所以你可以直接使用这些值。
你只需添加这个函数:
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
print(row)
}
注意行从 0 开始
在没有数据源的情况下从 PickerView 获取值的最佳方法是什么?所以我无法从数组中读取值。
当前值只是行号,我需要在用户完成选择后阅读。
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 3
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if component == 0 {
return 300
} else {
return 10
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if component == 0 {
return "\(row)."
} else {
return "\(row)"
}
}
您可以使用pickerView.selectedRow(inComponent:)
let firstValue = pickerView.selectedRow(inComponent: 0)
let secondValue = pickerView.selectedRow(inComponent: 1)
两者都只是一个 Int
值,表示其各自组件中当前选定的行索引。因为你的值是从0开始的,所以你可以直接使用这些值。
你只需添加这个函数:
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
print(row)
}
注意行从 0 开始