Skip to main content
 首页 » 数据库

swift之如何使用 UIPickerView 数据执行计算

2024年01月01日54shihaiming

我需要对 UIPickerView (Swift) 中的选择执行一些计算。有没有办法使用扩展名,比如 .floatValue 来获取所选行的字符串,并将其转换为 float ?我尝试了几种不同的方法,但都失败了。

我的选择器功能正常,所有委托(delegate)和数据源都已分配。

这是我所拥有的:

var spherePower : Float! 
let overRefractionData = ["-1.00", "-0.75", "-0.50", "-0.25", "0", "0.25", "0.50", "0.75", "1.00"] 
spherePower = // I need to pass the selected row's float value here 

请您参考如下方法:

您的选择器的数据源可能应该首先将值存储为 float ,然后委托(delegate)将这些 float 转换为字符串以显示在选择器中。

var overRefractionData = [-1.0, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, 1.0] 
 
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { 
    return "\(overRefractionData[row])" 
} 

所以当用户选择一个值时,你可以只使用选择的索引从数据数组中获取值:

func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int) { 
    var pickedValue = overRefractionData[row] 
    // do something with the picked value... 
}