如何使用Swift在XCode上单击按钮时,将得分提高一点

问题描述:

对于简单的问题,我对IOS开发人员来说很新颖。我想要做的是使UILabel设置为0,每次点击一个按钮时都会加1。这里是在ViewController.swift上给出的默认代码,并且我已经为按钮的标签和动作创建了一个Outlet。如何使用Swift在XCode上单击按钮时,将得分提高一点

import UIKit 

class ViewController: UIViewController { 
@IBOutlet var score: UILabel! 

@IBAction func button(sender: UIButton) { 


} 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

} 


} 

CHANGE LABEL NAME TO BE MORE DESCRIPTIVE 
CREATE SCORE VARIABLE AND START IT AT 0 SO YOU HAVE A SCORE TO PRESENT FROM THE START 
MAKE IT BEAUTIFUL 



import UIKit 

class ViewController: UIViewController { 
@IBOutlet var scoreLabel: UILabel! 
private var score = 0 

@IBAction func button(sender: UIButton) { 
    score += 1 
    scoreLabel.text = "\(score)" 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
     scoreLabel.text = "\(score)" 
     scoreLabel.backgroundColor = UIColor.pinkColor() 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

} 


} 

您需要一个变量来计数。像var counter = 0和在功能按钮,你把counter +=1score.text = "\(counter)"。我没有尝试,现在在Xcode的,但据我所知,应该工作

+0

刚刚试了一下,:)你也可以把'score.text =“\(counter)”'放到viewDidLoad中,在开头显示0 ......如果我的答案对你有帮助,请将它标记为正确答案:) –

这可能是做这件事的一种方法:

@IBOutlet weak var scoreLabel: UILabel! 
@IBAction func updateScore(sender: AnyObject) { 
    //Check if String can be parsed to integer 
    if let score = NSNumberFormatter().numberFromString(scoreLabel.text!) { 
     var myInt = score.integerValue 
     myInt = myInt + 1 
     scoreLabel.text = "\(myInt)" 
    } else { 
     scoreLabel.text = "0" 
    } 
} 
+0

这个答案在某段时间后被接受。然后它得到-1。你能解释为什么改变为-1的原因吗? – kamal

+0

得分不应该包含在按钮调用的范围内 – andrewcar

+0

问题陈述是“我想要做的是使UILabel设置为0,每次点击一个按钮时都会加1”。因此,上述代码通过在每个按钮敲击上将ui标签文本增加1来实现该目的。分数是用于捕获标签现有值的局部变量。这只是实现结果的另一种方式,我在把它放在这里之前在程序中测试了这个代码。 – kamal