2014-10-04 15 views
13

Próbuję zmienić obraz kontrolki uiimage, klikając przycisk w szybkim tempie. W tym celu napisałem prostą aplikację "odgadnij, ile trzymam palców". Przeczytałem kilka artykułów o stackoverflow, ale nie mogłem rozwiązać problemu. Poniżej możesz zobaczyć mój kod i mój ui. Jak mogę zmienić zmianę obrazu po kliknięciu?jak zmienić obraz uiimage na przycisku kliknij szybką?

Oto mój kod:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet var myImageView: UIImageView! 
    @IBOutlet var inputField: UITextField! 
    @IBAction func clickedGuessButtonAction(sender: AnyObject) { 
     println("Guess button clicked") 
     var randomX = Int(arc4random()%6) 
     println("randomX = \(randomX)") 
     var guess = inputField.text.toInt(); 

     let image0 = UIImage(named: "images/qm.jpg") 
     let image1 = UIImage(named: "images/tick.jpg") 
     let image2 = UIImage(named: "images/cross.jpg") 

     if((inputField.text) != nil){ 
      if(guess == randomX){ 
       println("correct") 
       myImageView.image=UIImage(named: "tick.jpg") // THIS IS NOT WORKING 
       myImageView.image=image1      // THIS IS NOT WORKING TOO 
       inputField.resignFirstResponder();// hides keyboard 
      } 
      else 
      { 
       println("wrong") 
       myImageView.image=UIImage(named: "cross.jpg") 
       inputField.resignFirstResponder();//hides keyboard 
      } 
     } 
     else{ 
      println("invalid input. requires integer only") 
      inputField.resignFirstResponder();// hides keyboard 
     } 
    } 

    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. 
    } 


} 

A oto mój UI:

enter image description here

Odpowiedz

46

Nie trzeba podać albo nazwę katalogu środka trwałego lub rozszerzenie pliku obrazu za. Spróbuj je usunąć. Na przykład,

myImageView.image = UIImage(named: "tick") 
+0

teraz działa. Dziękuję Ci bardzo. –

+0

perfekcyjna odpowiedź :) –

+0

Od Swift 4 na Xcode 9 beta 3, czy teraz musimy włączyć rozszerzenia, np. ".jpeg"? –

-10

w Swift:

myImageView = "nameOfImage"; 
+4

to lekki, szybki kolego. nie nazwałeś nawet typem UIImage. –

+1

Zmień to na: 'myImageView: UIImage = UIImage (name:" nameOfImage ")', a następnie dodaj trochę wyjaśnienia. To musi być zaktualizowane ... Tak czy inaczej, odpowiedziano. Ale polecam aktualizację odpowiedzi. – lukaivicev

2

To może zależeć od wersji Xcode używasz. Dla mnie zadziałało następujące:

ImageView.image = UIImage(named: "Elephants.jpg") 
+1

Wygląda na to, że to nie działa dla autora pytania. Czy możesz podać bardziej szczegółowe informacje na temat wersji, która może działać (np. Czego używasz)? –

Powiązane problemy