2017-03-11 19 views
0

プログラムでUISliderを作成するのに問題があります。エラーは私が持っているセレクターが認識できないということです。私は "#selector(function)"の形式を使用しようとしましたが、どちらも動作しません。ここに私のコードは次のとおりです。UISliderターゲットアクションを追加できません

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") 
} 

私は迅速な遊び場を使用していますし、次のようにインポートした:UIKitに、PlaygroundSupport、およびSpriteKitベース。すべてのヘルプは高く評価されconsoleLog

:ここ

はあまりにも私のコンソールのスクリーンショットです。

答えて

2

sliderValueDidChange()がビューコントローラで定義されていますが、windSpeedSliderのターゲットがwindSpeedSliderに設定されているという問題があります。代わりに、self(すなわち、ビューコントローラ)に目標を設定する必要があります。

windSpeedSlider.addTarget(self, action:#selector(sliderValueDidChange(sender:)), for: .valueChanged) 

ターゲットメッセージ/セレクタが送信されることを目的とします。

0

あなたaddTargetは次のようになります。

windSpeedSlider.addTarget(self, action: #selector(sliderValueDidChange(sender:)), for: .valueChanged) 

それをチェックアウト:

Check it out

関連する問題