2016-04-07 21 views
0

Şimdi benim problemim, bir kişi bir metin alanında "42" ile aynı olmayan bir şey yazıyorsa (bu, etiket.text ile aynı olacak şekilde bir puan çizgisi saymaya çalışırken)) 1 eksi puan ile cezalandırılacaklar. Eğer "42" olmayan bir şey yazdıysam, bunun için sadece 1 eksi puan verir ama sadece ilk kez. Eğer tekrar yaparsam, skor çizgisi değişmeyecek ve böylece -1 skor çizgisinde sıkışıp kalacağım.Hızla sayma skoru

Her seferinde "42" olmayan bir şey yazdığımda, nasıl bir -1 puanı alsam bile bana -1 puan kazandırabilirim?

import UIKit 

    class ViewController: UIViewController, UITextFieldDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

     // MARK: PROBERTIES 
     @IBOutlet weak var label: UILabel! 

     @IBOutlet weak var textField: UITextField! 
     @IBOutlet weak var scoreLabel: UILabel! 

     @IBOutlet weak var photoImageView: UIImageView! 
     @IBOutlet weak var label2: UILabel! 
     @IBOutlet weak var label1: UILabel! 
     let imagePicker = UIImagePickerController() 

     override func viewDidLoad() { 
      super.viewDidLoad() 


      textField.delegate = self 
      imagePicker.delegate = self 

     } 


     func textFieldShouldReturn(textField: UITextField) -> Bool { 

      textField.resignFirstResponder() 

      return true 
     } 
     func textFieldDidEndEditing(textfield: UITextField) { 
      label.text = textField.text 
      var score = 0 


      if textField.text != "42" { 
       score -= 1 
      } 

      // MARK: if-statements 

      if label.text! == "42" { 
       label1.text = "You are correct" 
       self.view.backgroundColor = UIColor.greenColor() 
       score += 10 
      } 

      if label.text != "42" { 
       label1.text = "Damn, wrong" 
       self.view.backgroundColor = UIColor.redColor() 

      } 

      if label.text!.isEmpty { 
       label1.text = "Still waiting for an answer..." 

      } 

      if label.text == "happiness" { 
       label1.text = "It is not a key element in the meaning of life" 

      } 

      if label.text == "to be happy" { 
       label1.text = "i would rather be rich" 

      } 

      if label.text == "money" { 
       label1.text = "there is more in this world than money" 

      } 

      if label.text == "There is no meaning of life" { 
       label1.text = "There is a meaning to everything" 

      } 

      if label.text == "there is no meaning of life" 
      { 
       label1.text = "there is a meaning to everything" 

      } 

      if label.text == "to be rich" { 
       label1.text = "Money does not solve every problem" 


      } 

      var scoreString = String(score) 
      scoreLabel.text = "Your score is \(scoreString)" 


     } 
+0

Merhaba "Tam olarak bir -1 puanı alsam bile" "42 puan vermeyeceğim bir şey yazdığım her seferinde bunu nasıl yapabilirim?" 100 puanınız var, yazmamıza rağmen 42 puan size 99 puan verecek ve eğer tekrar 42 yazmıyorsanız o zaman 99 kalacaktır? Ya da 98 mi? – StealthOne

+0

Demek istediğim, "-1" ("42" olmayan bir şey yazıyorsam) ve "+10" (eğer "42" yazıyorsam) bir kez tetikleyebilirim. Örneğin, scoreline 0 ile başladım ve 42'ye eşit olmayan bir şey yazdım, sonra textfield'i kurtararak bitirdim ve skorum, "Skorunuz -1" olarak değişiyor, fakat yeniden düzenleme yapmaya başladığımda ve "42" ye eşit olmayan bir şey yazdığımda "o zaman benim skorumLabel hala aynı görünüyor" Puan -1 " –

cevap

0

Metin alanının Düzenleme değiştirildi prizine ViewController nesneden bir bağlantı ekleyin (Seni merak ediyorsanız TextField.text aynı olacak şekilde label.text belirledik görebileceğiniz gibi) . Alanın metni değiştiğinde, ona bağladığınız yöntem her ne olursa olsun çağrılır.

+0

bana kodları gösterebilir misin? bu yüzden% 100 emin olabilirim –