nico-s
6/7/2017 - 8:26 PM

ViewController.swift

// 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
}