Nun, mein Problem ist, dass, wenn ich versuche, eine Score-Zeile zu zählen, wenn eine Person etwas schreibt, das nicht dasselbe ist wie "42" in einem Textfeld (das ist das gleiche wie der label.text) Sie werden mit 1 Minuspunkt bestraft. Wenn ich etwas geschrieben habe, das nicht "42" ist, gibt es mir 1 Minuspunkt, aber nur das erste Mal. Wenn ich es noch einmal tue, ändert sich die Punktzahl nicht, also bleibe ich bei -1.Punkte zählen mit swift
Wie kann ich es jedes Mal tun, wenn ich etwas schreibe, das nicht "42" ist, wird es mir einen -1 Punkt geben, auch wenn ich bereits einen -1 Punkt erreicht habe?
(Wie Sie sehen, ich die Label.text eingestellt haben das gleiche wie TextField.text sein, wenn Sie sich fragen)
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)"
}
Hi was genau meinst du mit "Wie kann ich das jedes Mal machen, wenn ich etwas schreibe, das nicht" 42 "ist, wird es mir einen -1 Punkt geben, auch wenn ich bereits eine -1 erreiche?", Wie zum Beispiel Sie haben 100 Punkte, tippen nicht 42 gibt Ihnen 99 Punkte und wenn Sie nicht wieder 42 eingeben, dann wird es bei 99 bleiben? Oder 98? – StealthOne
Was ich meine ist, dass ich nur die "-1" (wenn ich etwas schreibe, was nicht "42" ist) und "+10" (wenn ich "42" schreibe) nur einmal auslösen kann. Zum Beispiel fange ich mit der Punktzahl 0 an und schreibe etwas, was nicht 42 ist. Dann beende ich die Textfeldbearbeitung und mein scoreLabel ändert sich zu "Your score -1", aber wenn ich wieder mit der Bearbeitung beginne und etwas schreibe, das nicht gleich 42 ist "dann wird mein scoreLabel immer noch genauso aussehen" Your score -1 " –