我的代码运行时遇到问题"太快"在我的Xcode项目中(在我的iPhone上测试时)。我有两个按钮控制将常规[默认选项]中的牛奶量更改为浅色或高达额外值。当我触摸将牛奶量减少到光线时,它工作正常。但是,从该选项中,当我按向上箭头将牛奶量更改回常规时,它会更改为常规,然后更改为额外,因为代码执行速度非常快。这有点难以通过措辞来解释,但我试图弄清楚如何在每次迭代时停止进程而不会一直跳到行尾。我将在下面发布我的代码,但如果您需要更多说明以帮助我,请告诉我们!
@IBAction func changeMilkAmountRight(sender: UIButton) {
if milkAmount == 1 {
milkAmount = 2
milkAmountLabel.text = String("regular")
updateLabels()
}
if milkAmount == 2 {
milkAmount = 3
milkAmountLabel.text = String("extra")
updateLabels()
}
}
@IBAction func changeMilkAmountLeft(sender: UIButton) {
if milkAmount == 3 {
milkAmount = 2
milkAmountLabel.text = String("regular")
updateLabels()
}
if milkAmount == 2 {
milkAmount = 1
milkAmountLabel.text = String("light")
updateLabels()
}
}
答案 0 :(得分:1)
您想使用else if
,因此只能运行一个块,例如:
if milkAmount == 3 {
milkAmount = 2
milkAmountLabel.text = String("regular")
updateLabels()
} else if milkAmount == 2 {
milkAmount = 1
milkAmountLabel.text = String("light")
updateLabels()
}
答案 1 :(得分:0)
您需要使用else if
。
在此处输入您的代码:
if milkAmount == 1 {
milkAmount = 2
milkAmountLabel.text = String("regular")
updateLabels()
}
if milkAmount == 2 {
milkAmount = 3
milkAmountLabel.text = String("extra")
updateLabels()
}
想象一下它进入第一个街区。 milkAmount
最初等于1
,但输入了代码块,并将其更改为2
。退出代码块后,检查milkAmount
是否等于2
(它是),然后更改为3
。
相反,在第二个if语句中使用else if
,如下所示:
if milkAmount == 1 {
milkAmount = 2
milkAmountLabel.text = String("regular")
updateLabels()
}
else if milkAmount == 2 {
milkAmount = 3
milkAmountLabel.text = String("extra")
updateLabels()
}
现在,如果第一个块被执行,你的代码甚至不会检查milkAmount
是否等于2,你的问题就会解决。
考虑阅读Swift中的if语句:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html