title: how to update the maximum value of a slider?
body: <p>I have an app where you have a certain amount you can bet. you use a slider to determine how much to bet.</p>
  
  <p>Upon each turn (dice toss), your total treasure is updated (whether win or loss). The maximum value of the slider is the same value as the treasure.</p>
  
  <p>I would like for the slider to update its maximum value after each dice toss (i.e. each time the total treasure is updated).</p>
  
  <p>it is a very short app, so I am copying the whole code</p>
  
  <pre><code>
  class ViewController: UIViewController {
      @IBOutlet weak var gains: UILabel!
      @IBOutlet weak var dicePlayer: UIImageView!
      @IBOutlet weak var diceComputer: UIImageView!
  
      //slider et label approprié
      @IBOutlet weak var slider: UIView!
  
      @IBOutlet weak var sliderValueLabel: UILabel!
  
      override func viewDidLoad() {
          super.viewDidLoad()
          // Do any additional setup after loading the view.
  
          // on appelle le generateur de gains ici
          gainsAleatoires()
          // et on genere aleatoirement les dés
          //lancerDeDes()
  
      }
  
      //MARK: - Variables pour l'application
      //tableau qui contient le nom des differents dés
      let des: Array = ["one", "two", "three", "four", "five", "six"]
  
      // tableau qui genere les gains
      var generateurDeGains = Int.random(in: 100 ... 1000)
  
      // deux variables qui vont simuler les lancers pour le joueur et l'ordinateur
      var lancerJoueur: Int = 1
      var lancerOrdinateur: Int = 1
  
      // deux variables pour enregistrer le tresor initial ainsi que le tresor mis a jour
      var initialGains = 0
  
  
  
  
      //MARK: - Gestion lancer de dés
  
      @IBAction func boutonLancerDes(_ sender: UIButton) {
          // on appelle la fonction lancer de dés
          lancerDeDes()
  
      }
      //MARK: - Gestion reinitialisation du jeu et des gains
  
      @IBAction func boutonReinitialisation(_ sender: UIBarButtonItem) {
          // on appelle de nouveau la fonction gains aleatoires
          gainsAleatoires()
          // on change la valeur du slider
          //sliderValueLabel.text = "0"
      }
  
      //MARK: - Fonction qui genere un gain aleatoire entre 100 et 1000
      func gainsAleatoires () {
          gains.text = String(generateurDeGains)
  
      }
      //MARK: - Bouton pour changer la valeur de la somme que le joueur parie
      @IBAction func sliderValueChanged(_ sender: UISlider) {
          // on s'assure que la valeur du slider est affichée dans le label correspondant
          let currentValue = Int(sender.value)
          sliderValueLabel.text = String(currentValue)
  
          // on donne la valeur maximale du slider qui est celle des gains générés aleatoirement
          sender.maximumValue = Float(generateurDeGains)
      }
  
  
      //MARK:- Fonction qui gere le lancer des deux dés
      func lancerDeDes() {
          //on rend aleatoire les lancers du joeur et de l'ordinateur
          self.lancerJoueur = Int.random(in: des.indices) + 1 // code qui rend les erreurs plus faciles a detecter
          //autre ecriture : self.lancerJoueur = Int.random(in: 1...6)
          self.lancerOrdinateur = Int.random(in: des.indices) + 1
  
          UIView.animate(withDuration: 0.5) {
              self.dicePlayer.image = UIImage(named: self.des[self.lancerJoueur - 1])
              self.diceComputer.image = UIImage(named: self.des[self.lancerOrdinateur - 1])
  
          }
          // on appelle la fonction qui gere les scores
          gestionDesScores()
      }
  
      //MARK: - Fonction qui gere les scores pour le joueur et l'ordinateur
  
      func gestionDesScores() {
          // 2 switch statements
  
          //on appelle ici la fonction qui va donner une alerte en fonction du resultat du lancer
          alertesEnFonctionDuResultat()
      }
  
      //MARK: - Fonction qui gere les resultats
      func alertesEnFonctionDuResultat() {
          // si le joueur gagne
          if lancerJoueur &gt; lancerOrdinateur {
              // on recupere la valeur actuelle des gains
              initialGains = generateurDeGains
              // on appelle l'alerte
              alerteSucces()
              // on met a jour la valeur des gains initiale
              initialGains = generateurDeGains + Int(sliderValueLabel.text!)!
              //on change la valeur totale des gains
              gains.text = String(initialGains)
              // et on change la valeur maximale du slider
  
  
          } // si l'ordinateur gagne
          else if lancerJoueur &lt; lancerOrdinateur {
              //idem
              initialGains = generateurDeGains
              alerteEchec()
              initialGains = generateurDeGains - Int(sliderValueLabel.text!)!
              gains.text = String(initialGains)
          } // en cas de parité
          else {
              alerteParite()
          }
          // fin de partie
          if gains.text == "0" {
              //on appelle la fonction fin de partie
              finDeLaPartie()
  
          }
  
      }
  
      //MARK: - Fonction avec alerte en cas de succès du joueur
      func alerteSucces() {
          let alert = UIAlertController(title: "Votre lancer est supérieur !", message: "Vous gagnez votre mise", preferredStyle: .actionSheet)
          let action = UIAlertAction(title: "Continuer", style: .default, handler: nil)
          alert.addAction(action)
          present(alert, animated: true, completion: nil)
      }
  
      //MARK: - Fonction avec alerte en cas d'echec du joueur
      func alerteEchec() {
          let alert = UIAlertController(title: "Votre lancer est inférieur !", message: "Vous perdez votre mise", preferredStyle: .actionSheet)
          let action = UIAlertAction(title: "Continuer", style: .default, handler: nil)
          alert.addAction(action)
          present(alert, animated: true, completion: nil)
      }
  
      //MARK: - Fonction en cas de parité entre joueur et ordinateur
      func alerteParite() {
          let alert = UIAlertController(title: "Vos lancers sont égaux !", message: "Vous devez de nouveau lancer les dés", preferredStyle: .actionSheet)
          let action = UIAlertAction(title: "Continuer", style: .default, handler: nil)
          alert.addAction(action)
          present(alert, animated: true, completion: nil)
      }
  
      //MARK: - Fonction qui gere le cas où on n'a plus de tresor et donc il faut reinitialiser
      func finDeLaPartie() {
          let alert = UIAlertController(title: "Vous n'avez plus d'argent !", message: "Réinitialisez ou secouez l'appareil pour débuter une nouvelle partie", preferredStyle: .alert)
          let action = UIAlertAction(title: "Compris", style: .default, handler: nil)
          alert.addAction(action)
          present(alert, animated: true, completion: nil)
      }
  
  
  }
  </code></pre>