选择器视图和 if 语句

Picker Views and if statements

我使用本教程创建了一个成功的 pickerview:

Link to tutorial

我希望在选择每个选项时能够做一些不同的事情,而大多数教程只展示如何为所有选项做一件事,例如将选项文本放入标签中。

这是我试图做我想做的代码。 (我放入打印部分以查看代码是否为 运行 而不是。)

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        if row == 0 {
            currentSpeedMeasurement = "MPH"
            speed = speed * 2.23694
            print("Testing")
        }else if row == 1 {
            currentSpeedMeasurement = "KPH"
            speed = speed * 3.6
        } else if row == 2 {
            currentSpeedMeasurement = "M/S"
            speed = locationManager.location!.speed
            //speed = round(100 * speed)
        }
    }

编辑:下面是我为该项目编写的所有代码。我正在创建一个显示人行进速度的应用程序。 我希望用户从 PickerView(名为 measurementPicker)中选择一个速度测量值,例如英里每小时。

我希望根据用户使用 switch 语句选择的选项激活开关。

我希望速度随后与测量值一起显示在标签中(已转换为所需的测量值)。例如。 "Your speed: 10 MPH"

开关似乎不是 运行ning,因为测量总是 m/s。

请帮忙!

谢谢

代码看起来不错,我认为使用 switch 会更好

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

    switch row {
    case 0:
        currentSpeedMeasurement = "MPH"
        speed = speed * 2.23694
        print("Testing")
    case 1:
        currentSpeedMeasurement = "KPH"
        speed = speed * 3.6
    default:
        currentSpeedMeasurement = "M/S"
        speed = locationManager.location!.speed
        //speed = round(100 * speed)
    }
}

为什么它不起作用?我认为你缺少为选择器设置委托,通过你的故事板来完成

或通过代码:

@IBOutlet weak var pickerView: UIPickerView! {
        didSet{
            pickerView.delegate = self
            pickerView.dataSource = self
        }
    }

之后它应该可以正常工作。