swift - 滑块值不会更新值,除非它被移动
问题描述
我一直在玩一个基本的投注应用程序,但我似乎无法弄清楚这个问题。
滑块是 的百分比,bank
除非它移动到该点,它将根据值更新值。如果它没有移动并保持在以前的值,它也使用以前的值。
例如:
我的银行是 1000。我将滑块移动到 10% 下注 100。我赢了,现在我的银行是 1100。
我想再次下注 10%,但它不会更新到应该是 110 的新值。它会保持相同的值 100 直到滑块移动?我该如何解决它,即使它不移动银行的 10% 的价值也是如此。
@IBAction func slider(_ sender: UISlider)
{
betAmount.text = String(format: "%.0f%%",sender.value)
wager = Int(sender.value) * bank / 100
}
@IBAction func flipCoin(_ sender: UIButton)
{
let number = [1,2]
winnings = wager + ((wager * 90) / 100)
if let coin = coins.randomElement()
{
if(coin == 1 && wager <= bank && wager > 0)
{
youBet.text = ("$\(wager)")
bank += winnings
bankLabel.text = ("$\(bank)")
}
else if(coin == 2 && wager <= bank && wager > 0)
{
youBet.text = ("$\(wager)")
bank -= wager
bankLabel.text = ("$\(bank)")
}
}
}
解决方案
最简单的方法是执行以下操作:-
- 如果您还没有
IBOutlet
UISlider 的,请创建一个(例如,称为sliderOutlet
. - 将 func 的内容提取
slider
到一个新的私有函数,称为 (eg)updateWager()
。参考sliderOutlet
而不是sender
. - 更改
slider
func 以调用您的新函数。 - 也从末尾
flipCoin
(即银行更新后)调用此函数。
这将在翻转完成时自动进行投注计算。如果任何其他事件(现在或将来)更新银行,您也可以调用新函数。
IE:
@IBOutlet weak var sliderOutlet: UISlider! // Create this from the storyboard
func updateWager()
{
betAmount.text = String(format: "%.0f%%", sliderOutlet.value)
wager = Int(sliderOutlet.value) * bank / 100.0
}
@IBAction func slider(_ sender: UISlider)
{
updateWager()
}
@IBAction func flipCoin(_ sender: UIButton)
{
let number = [1,2]
winnings = wager + ((wager * 90) / 100)
if let coin = coins.randomElement()
{
if(coin == 1 && wager <= bank && wager > 0)
{
youBet.text = ("$\(wager)")
bank += winnings
bankLabel.text = ("$\(bank)")
}
else if(coin == 2 && wager <= bank && wager > 0)
{
youBet.text = ("$\(wager)")
bank -= wager
bankLabel.text = ("$\(bank)")
}
updateWager()
}
}
推荐阅读
- python - 有人可以解释一下吗
- telegram - Telegram bot 删除贴纸集
- python - Python - 如何更新 Vader Lexicon 分数?
- apache - 每天 22:51 使用 cron 自动重启 apache 服务
- python - 访问模板中的 ModelForm 查询集对象字段
- python - 从数据框列中的文本块中解析地址
- google-cloud-pubsub - 批处理谷歌发布/订阅事件,然后将集合发布为单个事件 - Apache Beam
- javascript - How to filter an array that excludes from object's property array
- firebase - InvalidStateError:在不允许突变的数据库上尝试了突变操作
- jenkins - 在 stable/jenkins helm 图表中将 jenkins tmp 文件夹定义为持久性卷