gpt4 book ai didi

swift - 刷新步进值

转载 作者:行者123 更新时间:2023-11-30 10:15:28 24 4
gpt4 key购买 nike

我有 3 个分段控件(游戏名称)和 3 个用于价格、数量、小计的文本字段。我还有 1 个步进器来增加或减少 1 到 5 之间的数量。

当我更改 1 款游戏的数量并更改选择另一款游戏时,就会出现问题。假设我将 game1 数量增加到 5 并更改游戏。数量字段自动设置为 1。但是步进器中的“+”是不可选择的,当我按步进器中的“-”时,数量变为 4。

我认为当我从分段控制更改游戏时,我需要刷新步进器值。任何想法 ?

    class ViewController: UIViewController {

@IBOutlet weak var Photo: UIImageView!
@IBOutlet weak var seg_games: UISegmentedControl!
@IBOutlet weak var lbl_motto: UILabel!
@IBOutlet weak var txt_unitPrice: UITextField!
@IBOutlet weak var txt_quantity: UITextField!
@IBOutlet weak var txt_totalPrice: UITextField!
@IBOutlet weak var step_qChooser: UIStepper!


@IBAction func stepChanged(sender: UIStepper) {


if (txt_quantity.text.isEmpty) {
let alert = UIAlertView()
alert.title = "No Game Choose"
alert.message = "Please Pick Your Game First !"
alert.addButtonWithTitle("Ok")
alert.show()
}

else {

txt_quantity.text = Int(sender.value).description
txt_totalPrice.text = TotalCalc()

}
}

func TotalCalc () -> String {
var a = txt_unitPrice.text.toInt()
var b = txt_quantity.text.toInt()
var sonuc = a! * b!
return String(sonuc)
}


@IBAction func seg_games(sender: AnyObject) {

var index = seg_games.selectedSegmentIndex
var choice = seg_games.titleForSegmentAtIndex(index)!

if choice == "Fallout"
{
lbl_motto.text = "Be Prepare your P.I.M.P."
self.Photo.image = UIImage(named: "fallout.png")
txt_quantity.text = "1"
txt_unitPrice.text = "80"

txt_totalPrice.text = TotalCalc()

}

else if choice == "Borderlands"
{
lbl_motto.text = "Ready for BIG BOYS !!!"
self.Photo.image = UIImage(named: "borderlands.png")
txt_quantity.text = "1"
txt_unitPrice.text = "55"

txt_totalPrice.text = TotalCalc()

}

else if choice == "Battlefield"

{
lbl_motto.text = "Choose: Sniper or Assult"
self.Photo.image = UIImage(named: "battlefield.png")
txt_quantity.text = "1"
txt_unitPrice.text = "110"

txt_totalPrice.text = TotalCalc()

}

}

最佳答案

UIStepper既可读又可写。

如果您始终希望更改段时数量返回到 1,则只需在更改段时将步进器值设置为 1.0:

step_qChooser.value = 1.0
<小时/>

如果您希望数量保持不变(例如,如果您离开并返回,《无主之地》的数量将保持在 3),您需要将每个项目的数量与 分开存储UIStepper.

  1. 创建一个数组来保存步进值。这是 ViewController 的一个属性,因此应该在任何方法之上定义它:

    var quantities = [1.0, 1.0, 1.0]

    这些数量将按照您从 UISegmentedControl 获取的 index 进行索引。

  2. 选择新游戏时,根据数量更新步进器值并相应地设置文本字段:

    step_qChooser.value = quantities[index]
    txt_quantity.text = "\(Int(quantities[index]))"
  3. 当步进值发生变化时,请务必更新 quantities 数组中的值。在 stepChanged() 函数中执行以下操作:

    quantities[seg_games.selectedSegmentIndex] = step_qChooser.value

关于swift - 刷新步进值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30285815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com