2016-12-09 2 views
0

Ich verwende this repo, aber es hat keine Funktion, um mich zu warnen, wenn der Schieberegler seinen Wert ändert, also habe ich versucht, es selbst zu tun.So rufen Sie eine Schaltfläche aus einer anderen Ansicht mit Swift

Zuerst habe ich versucht, es mit der Aktion des Schiebers zu tun, aber ich will nur den Wert, wenn der Benutzer aufhören zu gleiten, das ist ein Int (die Aktion des Schiebers gab mir viele Werte wie 1.2,1.3,1.4 usw.).

fand ich einen Weg, um den Wert zu übernehmen, wenn der Benutzer aus einer Funktion Schiebe stoppt, die wie folgt in diesem Repo ist:

internal func didMoveSliderStepValue(sendValueChangedEvent: Bool = false) { 
      let intValue = Int(round(self.value)) 
      let floatValue = Float(intValue) 

      print(intValue) //It prints only when the user stops sliding 
      //a function to call after taking the value 
      callTheButton() 

      UIView.animateWithDuration(0.35, animations: { 
       self.setValue(floatValue, animated: true) 
      }) { (fin) in 
       self.setThumbForSliderValue(floatValue) 
       if sendValueChangedEvent { 
        self.sendActionsForControlEvents(.ValueChanged) 
       } 
      } 
     } 

func callTheButton(){ 
    buttonFromMainView() 
} 

Jetzt möchte ich eine Schaltfläche (buttonFromMainView), die ich in meinem haben auslösen Hauptansicht. diese

So ist meine Frage:

Kann ich auf die Taste der zügigen Datei aufrufen, die das Repo hat? Oder kann ich nur den Wert nehmen, wenn der Benutzer aufhört, aus den UISlider-Funktionen zu gleiten?

Vielen Dank im Voraus.

+1

Sie nicht auf eine Schaltfläche aufrufen können, auch können Sie es Methode Ziel zu nennen versuchen –

+0

Sie NSNotificationCenter verwenden können, ein Verfahren zu schießen, die Ihre Taste – Sebastian

Antwort

1

Wenn Sie leicht Zugriff Wert wollen nach Touch Benutzern Finish Sie (zum Beispiel in viewDidLoad)

isContinous 

Eigentum Ihrer G8SliderStep (und jeder UISlider) und implementieren dann valuechanged Funktion wie für jeden anderen UISlider einstellen

@IBAction func valueChanged (sender: G8SliderStep) 
{ 
    // Your value will be like 2.3325 so you want to round it 
    let newValue = round(sender.value) 
} 
+0

Vielen Dank für Ihre Antwort nennen kann, werde ich es testen in etwa eine Stunde y ou bitte bearbeiten sie ihre antwort mit mehr details wie kann ich es tun? Danke –

+0

Ich kann nicht verstehen, wie ich isContinous verwenden kann –

+0

isContinous ist Eigentum von UISlider. In Ihrem Fall tippen Sie einfach myStepSlider.isContinous = false – Adamsor

Verwandte Themen