在swift中按下UIButton时,我似乎无法弄清楚如何重复功能块。这就是我所拥有的:
class CoinFlip: UIViewController {
@IBOutlet var resultLabel: UILabel!
var randomNumber = (Int(arc4random_uniform(2)))
@IBAction func tossButton(sender: UIButton) {
if randomNumber == 0 {
resultLabel.text = "Heads!"
}
else if randomNumber == 1 {
resultLabel.text = "Tails!"
}
}
}
在应用程序中按下按钮时,它会选择一个随机数。如果我再次点击它,它会显示相同的数字。每次按下按钮时我能做什么才能刷新?
答案 0 :(得分:1)
var randomNumber = 0
@IBAction func tossButton(sender: UIButton) {
randomNumber = Int(arc4random_uniform(2))
if randomNumber == 0 {
resultLabel.text = "Heads!"
} else {
resultLabel.text = "Tails!"
}
}
您还可以创建一个只读的计算属性,如下所示:
只读计算属性
具有getter但没有setter的计算属性称为a 只读计算属性。始终是只读计算属性 返回一个值,可以通过点语法访问,但不能 设置为不同的值。
请注意
您必须声明计算属性 - 包括只读计算 properties - 作为var关键字的变量属性,因为它们的 价值不固定。 let关键字仅用于常量 属性,表示一旦它们的值无法更改 被设置为实例初始化的一部分。
您可以通过简化只读计算属性的声明 删除get关键字及其大括号:
var headsTails:Bool {
return Int(arc4random_uniform(2)) == 1 ? true : false
}
if headsTails {
println("Heads")
} else {
println("Tails")
}
println(headsTails)
println(headsTails)
println(headsTails)
println(headsTails)
println(headsTails)
println(headsTails)
println(headsTails)
println(headsTails)
println(headsTails)
println(headsTails)
答案 1 :(得分:0)
快速编码,希望有所帮助:
class CoinFlip: UIViewController {
var randomNumber: Int?
@IBOutlet var resultLabel: UILabel!
@IBAction func tossButton(sender: UIButton) {
guard (randomNumber != nil) else {
randomNumber = Int(arc4random_uniform(2)) // picks a number
resultLabel.text = "" // removes the old result
return
}
// Displays the number
resultLabel.text = randomNumber == 0 ? "Heads!" : "Tails!"
randomNumber = nil
}
}