我使用本教程创建了一个成功的pickerview:
我希望能够在选择每个选项时做一些不同的事情,而大多数教程只展示如何为所有选项做一件事,例如将选项文本放入标签中。
这是我试图做我想要的代码。 (我放入打印部分以查看代码是否正在运行且它不是。)
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)中选择一个速度测量,例如MPH。
我想根据用户使用switch语句选择的选项来激活开关。
我希望然后将速度显示在标签中(已转换为所需的测量值),然后进行测量。例如。 "你的速度:10英里/小时"
开关似乎没有运行,因为测量始终为m / s。
请帮忙!
由于
答案 0 :(得分:1)
代码看起来不错,我认为使用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
}
}
以后它应该和你一起工作。