プログラムでUISliderを作成し、evertimeを実行するアクションを作成しました。スライダの値を変更します。アクションはslider.valueを出力します。問題は、出力される値が常に0であることです。スライダを移動しても。 これはコードです:Swift - UISliderの値が変更されない
import UIKit
class EditVC: UIViewController {
var slider : UISlider {
let frame = CGRect(x: 10, y: 85, width: editView.frame.width - 30, height: 20)
let slider = UISlider(frame: frame)
slider.minimumValue = 0
slider.maximumValue = 10
slider.isContinuous = true
slider.addTarget(self, action: #selector(valueChangedFunc), for: .valueChanged)
return slider
}
@objc func valueChangedFunc() {
print(slider.value)
}
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(slider)
}
}
そのコードは正しいですか?あなたは 'sliderI'と呼ばれる変数を持っていますが、後であなたは' slider'を参照します。 – chedabob
私は質問を書いていたときにはそれは単にタイプミスでした。今度はうまくいって、ありがとうございます。 –
'slider'の読み取り専用の計算されたプロパティを作成しました。これは、呼び出されるたびに' UISlider'の新しいインスタンスを返します。 – chedabob