我需要对 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...
}
