按钮功能有效,如果得分超过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())
}
答案 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++
}