2017-02-16 2 views
1

J'essaie d'utiliser l'UISlider pour changer les images dans UIImageView Donc l'idée est que si la valeur du curseur est 1, une certaine image montre si c'est 2, différentes images montre . etc.Comment changer l'image dans UIImageView avec UISlider dans Swift

Quelqu'un peut-il aider s'il vous plaît?

Modifier: Ceci est le code que j'ai essayé. Je pense que c'est supposé être une instruction If/Else mais je ne suis pas sûr de savoir comment former la syntaxe.

@IBOutlet weak var scaleLabel: UILabel! 
@IBOutlet weak var scaleSlider: UISlider! 
@IBOutlet weak var scaleImage: UIImageView! 



@IBAction func valueChanged1(sender: AnyObject) { 

    if scaleSlider.value == 1 { 
     scaleImage.image = "Image.png" 
    } 

} 
+0

montrez votre code essayé –

+0

J'ai édité mon post. Je ne suis pas vraiment sûr de savoir où aller à partir d'ici. –

+0

quelle est la valeur minimum et maximum du curseur –

Répondre

-2

faire comme

@IBAction func valueChanged1(_ sender: UISlider) { 

var imageName : String = "Image.png" 

switch (sender.value) 
{ 
    case 0: 
    print("zero") 
    imageName = "yyyy.png" 

    case 1: 
    print("one") 
    imageName = "zzzz.png" 
    case 2: 
    print("two") 
    imageName = "aaaa.png" 

    default: 
    print("Integer out of range") 
} 

    if let image = UIImage(named:imageName) { 
    scaleImage.image = image 
    } 

} 
+0

@ Anbu.Karthnik Pas la meilleure solution puisque vous ignorez toutes les valeurs non-entières, n'est-ce pas? Donc, si l'utilisateur saute la valeur attendue, l'image restera inchangée. – alexburtnik

0

Comme curseur a une valeur flottante et vous avez besoin d'une valeur entière pour choisir l'image du tableau, je suppose que vous voulez utiliser l'index entier le plus proche de la valeur actuelle du curseur:

let images = [ 
    UIImage(named: "image1"), 
    UIImage(named: "image2"), 
    UIImage(named: "image3") 
] 

var currentIndex = 0 { 
    didSet { 
     if oldValue != currentIndex { 
      currentIndexUpdated() 
     } 
    } 
} 

@IBAction func valueChanged(_ sender: UISlider) { 
    currentIndex = Int(round(sender.value)) 
} 

func currentIndexUpdated() { 
    guard 0..<images.count ~= currentIndex else { return } 
    imageView.image = images[currentIndex] 
} 
2
  1. Créer un tableau de noms de fichiers.

  2. Convertissez votre valeur de curseur en int.

  3. Utilisez int pour indexer dans le tableau de noms de fichiers.

  4. Utilisez image(named:) pour charger l'image portant ce nom.

  5. Installez l'image dans votre vue d'image.

Voyez si vous pouvez convertir ces étapes en code. Si ce n'est pas le cas, éditez votre question pour montrer votre code et dites-nous ce qui se passe et nous vous montrerons comment le déboguer.