2016-12-09 2 views
0

J'utilise this repo mais il n'a aucune fonction pour m'avertir quand le curseur change sa valeur alors j'ai essayé de le faire moi-même. D'abord j'ai essayé de le faire avec l'action du curseur mais je ne veux que la valeur quand l'utilisateur arrêtera de glisser qui est un Int (l'action du curseur m'a retourné beaucoup de valeurs comme 1.2.1.3,1.4 etc.).Comment appeler un bouton d'une autre vue avec Swift

J'ai trouvé un moyen de prendre la valeur lorsque l'utilisateur cesse de glisser d'une fonction qui est à l'intérieur de cette prise en pension comme ceci:

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() 
} 

Maintenant, je veux déclencher un bouton (buttonFromMainView) que j'ai dans mon vue principale.

Alors ma question est la suivante:

Puis-je appeler le bouton du fichier rapide que le repo a? Ou est-ce que je peux prendre seulement la valeur quand l'utilisateur finit à glisser des fonctions d'UISlider?

Merci d'avance.

+1

vous ne pouvez pas appeler un bouton, aussi, vous pouvez essayer d'appeler sa cible méthode –

+0

vous pouvez utiliser NSNotificationCenter pour tirer une méthode qui appelle votre bouton – Sebastian

Répondre

1

Si vous voulez valeur facilement accès après contact d'arrivée d'utilisateur que vous pouvez définir (par exemple dans viewDidLoad) Propriété

isContinous 

de votre G8SliderStep (et tout UISlider), puis mettre en œuvre la fonction valueChanged comme pour toute autre UISlider

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

Merci pour votre réponse, je vais le tester dans environ une heure peut y S'il vous plaît modifier votre réponse avec plus de détails, comment puis-je le faire? Merci –

+0

Je ne peux pas comprendre comment puis-je utiliser isContinous –

+0

isContinous est la propriété de UISlider. Dans votre cas, vous tapez simplement myStepSlider.isContinous = false – Adamsor