快速计算得分

时间:2016-04-07 18:38:44

标签: swift if-statement count label textfield

现在,我的问题是,如果一个人在文本字段中写出与“42”不同的东西(与label.text相同),我试图计算得分线时,他们会得到受到1分的惩罚。如果我写了一些不是“42”的东西,它会给我1个减号但只是第一次。如果我再次这样做,则得分线不会改变,所以我将被卡在-1分线上。

每当我写下不是“42”的东西时,我怎么能这样做,即使我已经得到-1分,它也会给我-1分?

(如你所知,我已经将label.text设置为与textfield.text相同)

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)"


        }

2 个答案:

答案 0 :(得分:0)

从ViewController对象添加一个连接到文本字段的Editing Changed outlet。当字段的文本发生变化时,无论您使用哪种方法,都会调用它。

答案 1 :(得分:0)

我在寻找其他东西,但我想我会分享一下让我摆脱麻烦的原因,我的标签带有整数,这些整数变成了我不知道的字符串。

var pointsCount = 0

func addPoints(_ points: NSInteger)
{
    if let text = self.pointsLabel.text, var pointsCount = Int(text)
    {
        pointsCount += points
        pointsLabel.text = "\(pointsCount)"
    }
}

要添加2点,只需使用

addPoints(2)