我无法以编程方式通过 swift 创建 UISlider。错误是说我的选择器无法识别。我曾尝试使用“#selector(function)”的形式,但它也不起作用。这是我的代码:
let windTurbineView = SKView(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: 325, height: 600)))
let windSpeedSlider = UISlider(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: 280, height: 18)))
func windSpeedSliderSetUp() {
windSpeedSlider.minimumValue = 0.0
windSpeedSlider.maximumValue = 20.0
windSpeedSlider.isContinuous = true
windSpeedSlider.tintColor = .blue
windSpeedSlider.minimumValueImage = UIImage(named: "0MPH.png")
windSpeedSlider.maximumValueImage = UIImage(named: "20MPH.png")
windSpeedSlider.value = 0
windTurbineView.addSubview(windSpeedSlider)
windSpeedSlider.center.x = windTurbineView.center.x
windSpeedSlider.center.y = 585
windSpeedSlider.addTarget(windSpeedSlider, action: Selector(("sliderValueDidChange")), for: .valueChanged)
}
func sliderValueDidChange(sender: UISlider) {
mphLabel.text = "\(sender.value)"
print("wi")
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 swift playground 并导入了以下内容:UIKit、PlaygroundSupport 和 SpriteKit。
这也是我的控制台的屏幕截图: 
任何帮助表示赞赏。
问题是该方法sliderValueDidChange()是在视图控制器中定义的,但 的目标windSpeedSlider设置为windSpeedSlider本身。相反,您应该将目标设置为self(即视图控制器):
windSpeedSlider.addTarget(self, action:#selector(sliderValueDidChange(sender:)), for: .valueChanged)
Run Code Online (Sandbox Code Playgroud)
目标是消息/选择器发送到的对象。