2015-11-22 1 views
0

J'essaye de faire un changement d'image à une autre image quand un bouton est pressé en xCode 6 dans Swift. J'ai une vue de l'image que j'ai déclaré comme IBOutlet et ont essayé d'utiliser la commande:Comment puis-je changer l'image d'ImageView?

myImageView.image = [UIImage imageNamed:@"image2.png] 

Mais je reçois les erreurs suivantes sur cette ligne de code:

  1. déclarations consécutives à la ligne doit être séparée par ';'
  2. decleration
  3. expression est attendue dans un contenant littéral
  4. attendu attendu ']' dans un contenant l'expression littérale
  5. attendu un nom d'attribut

Voici mon code ci-dessous:

import UIKit 
import AVFoundation 

class ViewController: UIViewController { 

    @IBOutlet weak var photoImageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    @IBAction func Play(sender: AnyObject) { 
     photoImageView.image = [UIImage imageNamed:@"litup.jpeg"] 

    } 
} 

Répondre

1

Les erreurs que vous obtenez sont parce que vous essayez d'utiliser la syntaxe objective c dans le code swift.

Le correctif UIImage dans swift a un constructeur qui prend un name:String, cependant. Dans ce qui précède, lorsque vous définissez l'image sur l'imageView, vous n'avez pas besoin de vous embêter avec if let car imageView.image prend une image facultative (UIImage?). Le si nécessaire ne laissent passer que si vous gérerez le cas d'obtenir nul du constructeur UIImage(name: String)

@IBAction func Play(sender: AnyObject) { 
    photoImageView.image = UIImage(named:"litup.jpeg") 
} 

devrait fonctionner correctement

+0

J'ai essayé la solution que vous avez fourni. Je ne reçois plus d'erreurs dans ViewController.swift mais l'application se bloque quand j'appuie sur le bouton. Lorsque je supprime la ligne, l'application fonctionne correctement. Est-il possible qu'un paramètre de l'inspecteur d'identité ou de l'inspecteur d'attributs puisse interférer avec la ligne de code? –

+0

Pouvez-vous m'en dire plus sur l'accident? Quelle erreur voyez-vous lorsque l'application plante? – Moriya

+0

Je viens de l'essayer il y a quelques minutes et il semble bien fonctionner. Désolé de vous déranger et merci pour l'aide. –