// Slider component
var interationsSlider: UISlider = {
let slider = UISlider(frame: CGRect(x: 0, y: 0, width:280, height: 20))
slider.translatesAutoresizingMaskIntoConstraints = false
slider.minimumValue = 500
slider.maximumValue = 50000
slider.isContinuous = true
slider.value = 50
slider.tintColor = UIColor(red: 240/255.0, green: 240/255.0, blue: 240/255.0, alpha: 1)
slider.addTarget(self, action: #selector(sliderValueDidChange), for: .valueChanged)
slider.layer.cornerRadius = 5
slider.layer.masksToBounds = true
return slider
}()
// Current number of iterations label
var iterationsLabel: UILabel = {
let label = UILabel()
label.textAlignment = NSTextAlignment.center
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
// Layout constraints.
func setIterationsSlider() {
interationsSlider.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
interationsSlider.topAnchor.constraint(equalTo: computeMonteCarloButton.bottomAnchor, constant: 12).isActive = true
interationsSlider.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.75).isActive = true
interationsSlider.heightAnchor.constraint(equalToConstant: 50).isActive = true
}
// Handler for changing the slider value.
func sliderValueDidChange() {
nIterations = Int(interationsSlider.value)
iterationsLabel.text = String(Int(interationsSlider.value))
}
// Layout contraints.
func setIterationsLabel () {
iterationsLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
iterationsLabel.topAnchor.constraint(equalTo: interationsSlider.bottomAnchor, constant: 6).isActive = true
iterationsLabel.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.75).isActive = true
iterationsLabel.heightAnchor.constraint(equalToConstant: 50).isActive = true
}