2017-02-21 3 views
1

Ich versuche, mit SwiftRangeSlider von BrianCorbin umgesetzt zu arbeiten: https://github.com/BrianCorbin/SwiftRangeSliderSwift - Label-Updates mit SwiftRangeSlider

@IBOutlet weak var labelForRangeSlider: UILabel! 

@IBOutlet weak var rangeSlider: RangeSlider! 

@IBOutlet weak var submitButton: UIButton! 

override func viewDidLoad() { 
    super.viewDidLoad() 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 

override func viewDidLayoutSubviews() { 
    rangeSlider.updateLayerFrames() 
} 
... 

Und dies zeigt:

picture for labelForRangeSlider

ich aktualisieren möchten "Time", Das ist labelForRangeSlider, da sich rangeSlider lowerValue und upperValue ändern.

Jede mögliche Hilfe geschätzt wird ... Danke

+0

Sie sollten das, was Sie versucht haben, mit Ihren Codes und Screenshots versehen, damit andere Benutzer Ihr Problem und Ihre Hilfe leicht verstehen können. – webmaster

+0

Sorry darüber; Ich veränderte. –

Antwort

1

Sie sollen Aktion für das Ereignis hinzuzufügen .valueChanged für SwiftRangeSlider:

override func viewDidLoad() { 

    super.viewDidLoad() 

    let rangeSlider: RangeSlider = RangeSlider(frame: CGRect(x: 0, y: 0, width: 200, height: 60)) 
    rangeSlider.addTarget(self, action: #selector(self.rangeSliderValueChanged(slider:)), for: UIControlEvents.valueChanged) 
    self.view.addSubview(rangeSlider) 
} 


@IBAction func rangeSliderValueChanged(slider: RangeSlider) { 
    print(slider.lowerValue) 
} 
+0

Oh Gott, ich habe total vermisst, dass die RangeSlider-Klasse UIControl erbt ... Danke für die Antwort. Ich wusste nicht, dass da .valueChanged war. Sehr geschätzt –

0

Schließen Sie die IBAction unten auf den Bereich Schieber in Ihrem Storyboard und Dann können Sie Ihre Beschriftung ändern, wenn Sie den Schieberegler bewegen. Sie müssen lowerValue und upperValue Ihres Schiebereglers überprüfen.

@IBAction func rangeSliderValuesChanged(_ rangeSlider: slider) { 
    labelForRangeSlider.text "Min: \(slider.lowerValue), Max: (slider.upperValue)") 
}