在ViewDidLoad()上获取图像?

时间:2014-12-28 22:13:45

标签: ios iphone swift ios8

按钮功能有效,如果得分超过5则有效,如果我将变量得分设置为大于已有的数字,则会保存该高分,如何让它增加并保存高单击按钮时得分(如果按钮高于高分)?

如果我明确地将分数设置为100,然后将其重置为较低的数字,例如14,则屏幕仍将显示100.我如何使用该按钮以便我不必使用设置数字的变量,如果用户点击按钮120次,屏幕文字将是120,而不是100?

谢谢。

var score = 0

class ViewController: UIViewController {

//0...n
@IBOutlet weak var textLabel: UILabel!
//image
@IBOutlet weak var image: UIImageView!
//adds 1
@IBAction func addButton(sender: AnyObject) {
    ++score
    textLabel.text = String(score)

    if textLabel.text >= "5" {
        image.image = UIImage(named: "win")
    }
}

func newScore() -> Int {
    var highScore = NSUserDefaults.standardUserDefaults().integerForKey("highscore")

    if score > highScore {
        NSUserDefaults.standardUserDefaults().setInteger(score, forKey: "highscore")
        NSUserDefaults.standardUserDefaults().synchronize()
        highScore = score
    }
    return highScore
}

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

    textLabel.text = String(newScore())

    if textLabel.text >= "5" {
        image.image = UIImage(named: "win")
    }

    textLabel.text = String(newScore())
}

2 个答案:

答案 0 :(得分:0)

跟踪另一个变量中的按钮点击次数,例如buttonClicks,每次用户点击按钮时都会增加它。然后在addButton

textLabel.text = String(buttonClicks)

答案 1 :(得分:0)

您可以向score属性添加观察者,因此在设置时,您可以检查分数并相应地更新UI。

@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var scoreLabel: UILabel!


var score: Int = NSUserDefaults.standardUserDefaults().integerForKey("highscore") {
    didSet  {
        updateScore()
    }
}

func updateScore() {
    if score > 5 {
        println("win")
    }

    scoreLabel.text = "\(score)"

    checkHighScore()
}

func checkHighScore() {

    let defaults = NSUserDefaults.standardUserDefaults()
    if score > defaults.integerForKey("highscore") {
        defaults.setInteger(score, forKey: "highscore")
        defaults.synchronize()
    }

}


override func viewDidLoad() {
    super.viewDidLoad()

    updateScore()
}

@IBAction func buttonPressed(sender: UIButton) {
    score++
}